Java中关于toString方法的使用 50C

import java.util.*;
public class T {
public static void main(String[] args){
ArrayList 《String》 l=new ArrayList<>();
l.add("dd");
l.add("aa");
l.add((new Date()));
/*这里会报错The method add(String) in the type ArrayList is not applicable for the arguments (Date)*/
String c=l.get(0);
l.set(1, "da");
System.out.println(l.get(2));

}

}
但是将l.add((new Date()));改成 l.add((new Date()).toString());以后就不会报错了。
toString方法不是自动调用的吗?为什么会报错啊?同时还想问一下toString()方法的自动调用的条件是什么?
希望可以尽量详细一点,谢谢!

补充:我想问的重点是:为什么这里toString()方法不会自动调用(就像int类和Integer类会在需要的时候自动转换),或者说toString()方法自动调用的条件都有什么?

0

11个回答

是字符串链接的时候不是字符串类型的才会自动调用toString方法,其他对象方法你需要和方法参数需要的类型一致

5

toString()方法是将其转换成字符串,你的集合是String类型的,所以那样写会报错

1

你好,string+object=string,只有对象或基本数据类型与string连接的时候才会自动转换成string类型,没有string类型参与的要toString()来转换,
或者你后面加一个双引号也行l.add((new Date()))+“”;

1

按照你的说法add之后,如果调用了toString,那么被放入list中的就应该是个字符串,那么取出来就应该是个字符串了。
那么如果你本来是想add一个date又该如何做呢?

0

这个toString就是为了调用该方法将变量转换成字符串,所以需要你的转换类型保持一致才能通过

0

按道理是不会报错的,你泛型没有限制类型,add可以添加日期类型,除非你哪里重写了add方法,将参数改为String类型了。
还有ArrayList l=new ArrayList();最好使用向上转型 写成List l = new ArrayList();为什么向上转型,你可以百度。。。
因为任何类型存入list里面,都会被保存为Object类型,所以获取的时候要类型转换写成String c=(String)l.get(0);

0

import java.util.ArrayList;
import java.util.Date;

public class T {
public static void main(String[] args) {
ArrayList l = new ArrayList();
l.add("dd");
l.add("aa");
l.add((new Date().toString()));
/*这里会报错The method add(String) in the type ArrayList is not applicable for the arguments (Date)*/
String c = l.get(0);
l.set(1, "da");
System.out.println(l.get(2));
}
}

ArrayList l = new ArrayList();这一句要求l里只存存String类型,new Date()是Date类型不是String类型,所以会报错。
而new Date().toString()是String类型,因此可以往l里存。

0

博客的BUG导致《String》被去掉了。重写一下。
ArrayList《String》 l = new ArrayList《String》();这一句要求l里只存存String类型,new Date()是Date类型不是String类型,所以会报错。
而new Date().toString()是String类型,因此可以往l里存。

0
qq_27836205
Jordan裔 人家没写泛型啊
2 年多之前 回复

《 String》这个表示泛型,意思是集合中只能存放String这种类型,Date当然不是String类型了,但date.toString()方法会返回一个String.

如果你即想放String又想放Date 可以使用《Object》

0

< String>表示泛型,意思是集合中只能存放String这种类型,Date是对象,添加之后不是String类型,就会报错,,但date.toString()方法会返回一个String.那样就不会报错了

0
共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于java Object类中toString()方法与equals方法问题
/*由于这是本人在自学Java过程中的理解,如有不正确之处请予以指正,谢谢合作*/ toString方法:是Object类的方法之一(来自哪?)        概念:public String toString() :返回该对象的字符串表示。         为什么要重写?            toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。   ...
JAVA面向对象之代码块 继承 方法的重写 super关键字与重写toString()方法介绍
JAVA面向对象之代码块与继承 代码块分类 局部代码块 作用:限制变量生命周期 书写位置:在方法中 构造代码块 开发中很少使用 书写位置:类中 方法外 调用时机:如果你有构造代码块 系统会帮你调用 帮你在创建对象时调用 静态代码块(一定是被static修饰) 依赖类 随着类的加载而加载 注意:只加载一次(系统只创建一次 不管你调用多少对象) 应用场景:U...
java面向对象思想-超类Object(equals方法,hashcode方法,toString方法)
谈到继承就不得不提起所有类的超类Object类.在java中每一个类都是由他拓展而来.但是不需要显式的写到extends object.如果一个类并没有明确的指出超类是什么,那么这个类就会被认为是object的子类.object类都有哪些用处呢.首先介绍一些比较简单易懂的.首选由于object是所有类的超类,因此我们可以用object类引用任何类型的对象: Object object = ne...
Object类中方法总结之toString()
可还记得java入门的第一课么??System.out.println("hello world")。显而易见这个结果是一个字符串喽,可是如果括号中的参数是一个应用实例呢?那么会怎样呢?接下来就得来学习一下toString()方法究竟都干了些啥…… toString():该方法返回一个表示该对象的字符串,返回值内容包括:实例对应类名+@+对象哈希值的十六进制表示值,实现过称为: getClass(
java toString()方法的使用和详解
java toString方法是使用和详解1.toString()方法2. 通过java.lang.Object类的toString()定义来看实际使用中会出现什么情况? 1.toString()方法 toString()方法在Object类里定义的,其返回值类型为String类型,返回类名和它的引用地址 在进行String类与其他类型的连接操作时,自动调用toString()方法,demo如下...
Java中toString()方法的使用
Java中,数据类一般都要重载toString()方法,如果没有重载该方法就相当于犯了编程的大忌。下面来说说该方法的重要性。toString()方法是object里面的方法,而所有类都继承自object,所以所有对象都有这个方法。特别是在使用System.out.println(xx)这样的语句时,如果“xx”不是String类型,就会调用“xx”对象的toString()方法。 这个方法是干什么的
Java中Object类的方法(toString方法和equals方法)
Object是所有类的父类(国外成为超类superclass),Object类的方法是相当少的(理解为教室人越多,他们的共同点越少)。 Object的toString()方法帮助我们返回一个字符串,这个字符串的格式是固定的:类名@hashcode。这个hashcode是一串数字(16进制),在Java中叫句柄/(虚拟)地址。但是*句柄不是内存地址*。 toString方法定义的
Java中toString()方法的研究与使用
Java中toString()方法的研究与使用 所有类间接或直接继承Object,所以每个类都有toString()和equals()方法,在这里只讨论toString(); 用法: ①1.toString()看名字组合(转化字符串类型的意思,)2.应用于打印输出语句中, ②一般自己用要输出有用的信息,一般要重写 ③另外他是是sun公司开发Java的时候为了方便所有类的字符串操作
JAVA中Object类的toString()方法
toString public String toString() 返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。 Object 类的 toString 方法返回一个字符串,它的值等于: getClass().getName() + '@' + Integer.toHe...
Java之重写Object类的toString方法
有任何问题加群讨论,还可以领取精美学习资料噢~ 群号:733899823 加群时请备注CSDN~ 一、先看看重写之前的效果: package com.xiao.toString; /** * @author 笑笑 * @Date 2018年4月14日下午10:16:36 * */ public class Student { private String name; ...
在toString()方法中千万不要使用this
如果我们想打印出一个对象的引用地址,我们可以想到重写toString()方法,在该方法中打印this的值,因为this就是指代的本身。 然后我们就写了如下的代码: @Override public String toString(){ return "对象地址:"+this; } 可是,这样的话,就导致了toString()方法的无限递归调用,最终导致内存溢出。 为什么
在覆盖toString()方法中使用this所发现的有趣的现象
本人以前是用C++写程序的,现在在学习Java,所以,有时候,总想喜欢在类的方法中打印出来方法的名称和类的地址来看看程序的运行流程。我们知道,C++中输出this关键字的信息,就是本次程序中对应的类在内存中的地址,但是在Java中,this的使用就有一些限制。 具体来说就是: 如果一个类,没有重载toString()方法,那么在用System.out.println()输出this
Java中重写toString方法
    类 Object 是类层次结构的根(父)类, 每个类(Person,Student...)都使用 Object 作为超(父)类,所有对象(包括数组)都实现这个类的方法,其中tostring方法,默认输出的是类名和内存地址值。 JDK中源码: public String toString() { return getClass().getName() + &quot;@&quot; + Integ...
java类的tostring方法
tosting方法重写 java类中的tostring来用来输出类的信息。 我们先直接调用tostring方法看看会输出什么。 test类: package csdn; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Student a = n...
使用toString()方法遍历数组
代码: import java.util.Arrays; public class shuzu {  /**   * @param args   */  public static void main(String[] args) {   // TODO Auto-generated method stub   int arr[] = { 1, 2, 3, 4, 5, 6, 7 }
为什么print和println时候toString 方法会自动被调用
为什么toString 方法会自动被调用 源码 Sting.valueOfpublic static String valueOf(Object obj) { return (obj == null) ? &quot;null&quot; : obj.toString(); } /**参数: obj - 一个 Object。 返回: 如果参数为 null, 则字符串等于 &quot;null&quot;;否则, 返回 obj....
java继承实现不用每个类都写toString方法
每个类都写toString方法很麻烦,采用继承可以很好的解决 import java.io.Serializable; import org.apache.commons.lang.builder.ToStringBuilder; /** * @author lcc * 所有的实体类 bean都要集继承这个 为了 不写toString方法 */ public class Domain...
Java反射机制实现 toString() 方法
import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class TestReflection { public static void main(String[] arg...
JAVA-异常处理及toString的覆写
1、要求: 1).Person类有name,age,salary属性,要求实现至少两个构造方法,并且属性私有,提供对应的getter、setter。 2).覆写toString方法,要求在System.out.println()函数中传递Person对象能打印出三个属性值而不是对象地址。 3).覆写equals方法,要求两个Person类对象的值相同时返回true。 import javax.xm...
Java——Arrays类中两个常用方法(sort和toString)
首先代码需要添加import import java.util.Arrays; 查看Arrays类的API文档: sort方法: 查看sort(int[ ] a)详细内容,发现其时间复杂度是O(nlogn),这是排序最优的 toString方法: import java.util.Arrays; public class ArraysDemo2 { ...
Java 中 tostring () 方法快速获取对象字符串的信息
如果类定义了tostring()方法 就能在测试时  echo打印对象体,对象就会自动调用它所属类定义的toString方法,格式化输出这个对象所包含的数据 Java中输出一个类的对象的时候,会调用这个Object类的toString()方法。自己写的类没有覆盖这个方法的话就是继承Object类的这个方法,Object中toString()方法的实现是这样的:getClass().getName...
最好的java对象ToString处理方案,ToString基类
每个项目我都必用的工具类,使用非常简单,放到项目目录中,java对象继承这个ToString类就可以,用在代码日志里特别方便,还支持过滤特定字段,满足日志保密性要求
Java基础——to string 的作用和用法
System.out.println(stu2); //stu2打印的是地址 public String to String(){ return this,name+","this.sex+","+this.arges; //输出的信息就不是地址了 } 当打印信息时,如果打印对象不是字符串(string),则会自动调用to string方法,如果没写to string则会打印地址,如果
Java中构造函数、set/get方法和toString方法的使用及注意事项
一、构造函数构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对象并传入参数的时候,会自动调用构造函数并完成参数的初始化。如下:public class Test01 { private String name; //有参构造函数 public Test01(String name) { this.name = name; } p...
Java类里面的toString方法
在Java里面所有的类都有一个共同的父类Object,不管你愿不愿意都得继承他(默认继承,不用加extends)。那么我们今天要说的toString方法就是存在于Object里面的一个方法,换而言之,所有的类都会具有这个方法。那么这个方法的作用是什么呢?我自己总结为:需要把该类转换成String类型的时候就会调用这个方法。 例如:在用System.out.println();在输出...
Java:instanceof用法
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 用法: result = object instanceof class 参数: Result:布尔类型。 Object:必选项。任意对象表达式。 Class:必选项。任意已定义的对象类。 说明: 如
java实体类为什么要写.toString()方法?
java实体类重写.toString()方法 前言 笔者在做javaweb项目时候,使用SSM+maven+easyui,然后在写java实体类的时候,发现大家都要写tostring方法,那么为什么java实体类都要写.toString()方法?于是顺便在这里记录一下。 了解 在Java中每个类都默认继承Object类,除非声明继承于某个类。 而toString 方法来...
Object类中equals方法和toString方法的重写问题
(week6-Saturday)Object类1、Object类概述(具体查看API文档)         Object类是所有类的父类         若一个类未使extends明确标识继承关系,会默认继承Object类(包括数组)         Java中每个类都可以用Object类定义的方法   2、Object类中的equals方法和toString方法     说明:Object类中定...
重写Java实体类toString方法
利用ReflectionToStringBuilder重写toString方法,让日志可以直接打印对象中的数据,方便跟踪问题。 1、需要引入jar包,添加maven依赖: org.apache.commons commons-lang3 3.1 2、为实体类添加toString方法: public String toString() { return Reflection
高效Java技巧重写equals方法时应当重写hashCode方法
转自:http://tantanit.com/java-always-override-hashcode-when-override-equals/ hashCode需满足的条件 当equals方法中涉及的参数没有改变时,hashCode应保持不变 如果根据equals方法,两个对象是相等的,那么这两个对象的hashCode应该一样 两个对象如果不相等,hashCode不强制要求不一样,但...
java toString()方法以及重写的意义
这篇文章主要讲一下toString()的方法,重写toString方法的意义,自己的一些学习之后的见解。 首先,我们都清楚Object类是所有类的父类,toString()方法是Object类的方法,一下是API中对toString()方法的简单介绍。 要是不重写toString()方法的话,直接打印对象得到的结果是以个字符串,字符串的内容是getClass().getName()+'
JavaBean 重写tostring方法的用途
当实体类中,没有重写toString()方法, 用rest 格式调接口,传数据结果的时候,并不会有影响。 情况一:        new一个对象,或者从数据库里查询一个对象,举例子 ,查的是user实体,如果没有tostring方法, System.out.println() 打印的话 ,结果是 com.example.demo.entity.User@817a; 实体类有tostring方...
反射应用之一---编写通用的toString()方法
上一节总结了Java反射机制里涉及到的几个类和其用法,本节就应用这些类和方法实现一个通用的toString()方法。要将一个对象toString,我们需要考虑到哪些方面呢?
java 打印对象时时如何调用对象toString()方法的
print Object toString()
每个Java类都有的toString方法
每个Java类都有的toString方法
MyPoint.java使用toString()重写方法,为myPoint对象中的x和y属性分别赋值,并体验在Java中类的封装的实现。
阅读MyPoint.java,在main()方法里添加语句完成如下功能 创建一个MyPoint类对象myPoint。 使用toString()方法,输出myPoint的信息,体验类方法的覆盖,在本例中MyPoint类覆盖了Object的方法toString()方法。 为myPoint对象中的x和y属性分别赋值6、7,体验在Java中类的封装是如何实现的;设置myPoint的大小为3。 代码:...
【Java踩坑记】——ArrayList的toString()
问题描述: List&lt;String&gt; list=new ArrayList&lt;String&gt;(); list.add("张三"); list.add("李四"); list.add("王五"); System.out.println(list.toString()); 结果输出: [张三,...
Java的字符串操作,强转换,toString以及String.valueOf()
我现在知道的Java对象转换为字符串的方法如下(以后还有再补充): 1、java.lang.Object类的toString()方法,对于这个方法,通常需要Object的子类进行Override(重写); 2、java.lang.String类的valueOf()方法; 3、String的强制转换,(String) obj   分析上面三中方法: 1、java.lang.Objec...
Java的打印对象和toString方法
一 概念简介 1、打印对象和toString方法:toString方法是系统将会输出该对象的“自我描述”信息,用以告诉外界对象具有的状态信息。 2、Object 类提供的toString方法总是返回该对象实现类的类名 + @ +hashCode值。   二 打印对象示例 1、程序示例 class Person { private String name; public Per
重写Object类的toString方法
1. 我们在写Java程序的时候有时候需要对某个对象进行操作了之后加入需要查看对象里面的属性的话需要重写Object类的toString方法,但是一般涉及到的是好几个属性,有的属性是没有进行初始化的,那么假如这个使用开发工具来自动生成toString方法的话,那么也会把那些空的属性的值也输出来,但是我们往往需要看不为空的属性这个时候就需要自己去根据具体情况来自己重写一下toString方法了 2...