Java 从itr.next()返回的对象打印成员
以下代码存在编译问题。编译错误也附在后面。请提出同样的解决方案 代码:Java 从itr.next()返回的对象打印成员,java,iterator,Java,Iterator,以下代码存在编译问题。编译错误也附在后面。请提出同样的解决方案 代码: import java.util.*; class test{ int key; public static void main(String []args){ test obj = new test(); obj.key = 9999; LinkedList al = new LinkedList(); al.add(obj);
import java.util.*;
class test{
int key;
public static void main(String []args){
test obj = new test();
obj.key = 9999;
LinkedList al = new LinkedList();
al.add(obj);
Iterator itr = al.iterator();
while(itr.hasNext()){
test temp = new test();
temp = itr.next();
System.out.println(temp.key);
}
}
}
编译错误:
java:17:错误:不兼容的类型
temp=itr.next();
^
必需:测试
发现:对象
its.next()
做如下
LinkedList<Test> al = new LinkedList<Test>();
al.add(obj);
Iterator<Test> itr = al.iterator();
LinkedList al=新建LinkedList();
al.add(obj);
迭代器itr=al.Iterator();
所以编译器现在知道LinkedList
a1
只能保存Test
实例,所以在迭代时,我们只会有Test
返回对象的实例,而不是测试的实例
做如下
LinkedList<Test> al = new LinkedList<Test>();
al.add(obj);
Iterator<Test> itr = al.iterator();
LinkedList al=新建LinkedList();
al.add(obj);
迭代器itr=al.Iterator();
所以编译器现在知道LinkedList
a1
只能保存Test
实例,所以在迭代时,我们只有Test
的实例,有两种解决方案:
旧的解决方案(Java 1.5之前的版本):
通用解决方案(Java 1.5及更高版本):
publicstaticvoidmain(字符串[]args){
测试对象=新测试();
obj.key=9999;
LinkedList al=新建LinkedList();
al.add(obj);
迭代器itr=al.Iterator();
while(itr.hasNext()){
测试温度=新测试();
//使用泛型
temp=itr.next();
系统输出打印LN(温度键);
}
}
有两种解决方案:
旧的解决方案(Java 1.5之前的版本):
通用解决方案(Java 1.5及更高版本):
publicstaticvoidmain(字符串[]args){
测试对象=新测试();
obj.key=9999;
LinkedList al=新建LinkedList();
al.add(obj);
迭代器itr=al.Iterator();
while(itr.hasNext()){
测试温度=新测试();
//使用泛型
temp=itr.next();
系统输出打印LN(温度键);
}
}
has tons欢迎您(也可以通过单击答案旁边的右键标记将帮助您回答的答案标记为已回答),因为任何人都想了解更多有关泛型的信息。has tons欢迎您(也可以通过单击答案旁边的右键标记将帮助您回答的答案标记为已回答的答案),因为任何人都想了解更多关于泛型的信息,has tons欢迎您(也可以通过单击答案旁边的右键标记帮助您回答的答案)。
public static void main(String []args){
test obj = new test();
obj.key = 9999;
LinkedList<test> al = new LinkedList<test>();
al.add(obj);
Iterator<test> itr = al.iterator();
while(itr.hasNext()){
test temp = new test();
// use Generic
temp = itr.next();
System.out.println(temp.key);
}
}