这个为什么不能用tostring

来源:百度知道 编辑:UC知道 时间:2024/06/05 04:00:59
import java.util.*;

public class Test
{

public static void main(String args[])
{
List set = new ArrayList();
set.add(1);
set.add(1);
set.add(4);
Iterator it = set.iterator();
while(it.hasNext())
{
Test t = (Test)it.next();
String s = t.toString();
System.out.println(s);

}

}
}
可是next()这个方法不是返回一个object类型的么,强转成String类型 放到S变量里 也不能输出 怎么回事? 但是TEST能点出来tostring方法

你存入的是 基本数据类型 int 怎么可以转成 Test呢,自然就不能用它的toString()方法了~

你用Iterator迭代器,迭代出来的怎么可能是Test对象? 你的List中只有两个元素1和4,虽然你没做泛型定义你的List,但很明显你迭代出来的Object只能强转成Integer对象.

你并没有给你的类Test写tostring函数啊

Test t = (Test)it.next();问题出在这句话上
虽然返回next()方法object类,但其内部结构是Integer,你无法将它转换成Test类型

import java.util.*;

public class Test
{

public static void main(String args[])
{
List set = new ArrayList();
set.add(1);
set.add(1);
set.add(4);
Iterator it = set.iterator();
while(it.hasNext())
{
String s = it.next().toString();
System.out.println(s);

}

}
}