标题: 请问这段报错是什么意思???谁知道错在哪里? [打印本页] 作者: 韩超 时间: 2013-10-5 09:46 标题: 请问这段报错是什么意思???谁知道错在哪里? Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from element type Object to Data
at Test.main(Test.java:17)
-------------------------------------------------
import java.util.ArrayList;
class Data {
int val;
}
public class Test {
public static void main(String args[]) {
Data data = new Data();
ArrayList list = new ArrayList();
for (int i = 100; i < 103; i++) {
data.val = i;
list.add(data);
}
就是这里报错-----> for (Data d : list) {
System.out.println(d.val);
}
}
}
public class Test {
public static void main(String args[]) {
Data data = null; //把data放在for循环中进行实例化
List<Data> list = new ArrayList<Data>(); //为list指定泛型,同时将左边的改为List,因为这样体现了面向接口编程的思想
for (int i = 100; i < 103; i++) {
data = new Data(); // 把data放在for循环里面进行实例化,才可以保证list中会存放每一个对象,否则list中只是存放了for循环中最后一个对象
data.val = i;
list.add(data);
}
for (Data d : list) {
System.out.println(d.val);
}
}
}
第二种:
import java.util.ArrayList;
class Data {
int val;
}
public class Test {
public static void main(String args[]) {
Data data = null; //data还是需要放在for循环中进行实例化
ArrayList list = new ArrayList();
for (int i = 100; i < 103; i++) {
data = new Data();
data.val = i;
list.add(data);
}
for (Object d : list) { // 由于你没有指定泛型,所以list返回的是Object类型的对象
System.out.println(((Data)d).val); // 在输入中进行强制转换就可以了
}
}
}