读书人

java泛型重载的有关问题

发布时间: 2013-06-25 23:45:42 作者: rapoo

java泛型重载的问题
有个问题非常疑惑:
下面这两个方法编译不通过,但是网上查询的资料都表示这两个方法是能通过编译的,求高手解释
public Integer test(ArrayList<Integer> al) {
return null;
}

public String test(ArrayList<String> al) {
return null;
}
[解决办法]
jdk1.5以后编译应该没有问题的。
这就是普通的泛型啊。
[解决办法]
这是可以通过的呢,普通的泛型使用...贴错误信息来看看...
[解决办法]
你用的是eclipse的编译器,还是JDK的?eclipse自带的可能会有问题。

泛型的信息是在编译期存在,运行期抹去的。
比如:test (new ArrayList<Integer>());
在编译的时候,某些聪明的编译器知道test指向的是哪个版本的test,就直接静态地把这个test调用指向正确的test函数。某些编译器会报错。我没用eclipse的编译器试过(intellij死忠),不过原因是编译器,不是语法本身

读书人网 >J2SE开发

热点推荐