【发布时间】:2017-06-28 10:46:25
【问题描述】:
在学习 Generics 时,我发现第一个方法 m1 编译成功,而第二个方法 m2 编译失败并出现以下错误消息:
类型不匹配:无法从 int 转换为 Long
class Test1 {
<T extends Integer> void m1(T arg) {
long i = arg;
}
void m2(int i) {
Long l = i;// Compilation fails
}
}
谁能帮我理解这种行为。
【问题讨论】:
-
类型参数 T 不应以最终类型为界。