A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

String a1 = "a";
String a2 = "b";
String a3 = "c";
int a4 = 10;
List l = new ArrayList();
l.add(a1);
l.add(a2);
l.add(a3);
l.add(a4);
System.out.printn(l);
想问集合 l 的toString方法哪里来的?
为什么不报错反而会把10 加在数组后面呢?求权威解释

5 个回复

倒序浏览
................
回复 使用道具 举报

啥意思。。。
回复 使用道具 举报
I的toString方法来自AbstractCollection
不报错把10加在后面是因为集合里面默认保存的数据是Object类型,可以添加任意类型的元素,如果想只添加一种类型,可以使用泛型。例如ArrayList<String> list = new ArrayList<>();
回复 使用道具 举报
object类啊!没泛型
回复 使用道具 举报
markiyangliu 发表于 2016-9-28 22:12
I的toString方法来自AbstractCollection
不报错把10加在后面是因为集合里面默认保存的数据是Object类型,可 ...

I 是接口 他的方法肯定不是来自AbstractCollection 肯定用的是它自己的方法或它父类的方法,但是Collection里面也没有toString
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马