当前位置:编程学习 > JAVA >>

eclipse中的设置全都正确,但是泛型的强转报错

eclipse中的设置全都正确,项目的JDK是1.6的,eclipse的JDK也是1.6的,都设置好了,绝对没问题。
但泛型的强转一直报错,用MyEclipse却正常的很。求高手指教,弄了一个晚上了,来论坛求助!!!有知道的高手帮帮忙吧,谢谢了!@!!


--------------------编程问答-------------------- 呵呵,弄了一晚上? 要是我的话,就去官网在下载一个,工具的问题,没必要纠结 --------------------编程问答-------------------- 代码给看看就知道怎么回事了啊 --------------------编程问答--------------------
引用 2 楼 chianfirstli 的回复:
import java.util.ArrayList;

public class GenericTest2 {
public static void main(String[] args) {

ArrayList<? extends Number> arr = new ArrayList<Integer>();

// arr.add(5);
// Number n=arr.get(0);

ArrayList<? super Integer> arr2 = new ArrayList<Integer>();
arr2.add(5);
// Integer i=arr2.get(0);

ArrayList<String> arr3 = (ArrayList<String>) arr;
arr3.add("hello");
for (int i = 0; i < arr3.size(); i++) {
System.out.println(arr3.get(i));
}

ArrayList<Double> arr4 = (ArrayList<Double>) arr2;
arr4.add(3.14);
for (int i = 0; i < arr4.size(); i++) {
System.out.println(arr4.get(i));
}
}
}

代码给看看就知道怎么回事了啊
--------------------编程问答--------------------
引用 2 楼 chianfirstli 的回复:
代码给看看就知道怎么回事了啊
代码是没有问题的,我用MyEclipse运行正常的很 --------------------编程问答--------------------
引用 1 楼 ilyysys 的回复:
呵呵,弄了一晚上? 要是我的话,就去官网在下载一个,工具的问题,没必要纠结
我也不想纠结哦,烦死人了,还没搞好,其实也没什么,我知道代码没问题,但我就是想搞清楚到底是怎么回事 --------------------编程问答-------------------- 意思是编译器有问题? --------------------编程问答-------------------- ArrayList<Double> arr4 = (ArrayList<Double>) arr2;
 arr4.add(3.14);
 for (int i = 0; i < arr4.size(); i++) {
 System.out.println(arr4.get(i));
是不是报这块的错。。
如果是的话应该是Integer 不能直接转成Double --------------------编程问答--------------------
引用楼主 lingkobe 的回复:
用MyEclipse却正常的很

表示强烈质疑哦
ArrayList<? extends Number> arr = new ArrayList<Integer>();
ArrayList<String> arr3 = (ArrayList<String>) arr;
这个貌似只能向下转的吧 不知道怎么让你编译通过的 --------------------编程问答-------------------- 在错误代码上按F2选择to.....jdk1.5就ok了。 --------------------编程问答-------------------- ArrayList<? extends Number> arr = new ArrayList<Integer>();
这个编译也通过了? --------------------编程问答-------------------- ArrayList<String> arr3 = (ArrayList<String>) arr;
arr3.add("hello");
for (int i = 0; i < arr3.size(); i++) {
System.out.println(arr3.get(i));
}

这个也能通过?把一个extends Number 的强转成 String? --------------------编程问答--------------------
引用 11 楼 babyboy9685 的回复:
ArrayList<String> arr3 = (ArrayList<String>) arr;
arr3.add("hello");
for (int i = 0; i < arr3.size(); i++) {
System.out.println(arr3.get(i));
}

这个也能通过?把一个extends Number 的强转成 String?


要理解了自己写啊 这里确实有问题啊啊  --------------------编程问答-------------------- ArrayList<? extends Number> arr = new ArrayList<Integer>();
这个估计用问题,能编译,但是运行不及回报错的。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,