虽然学习Generics
我发现,这是m1
第一种方法编译成功,其中为m2
失败,以下错误消息编译第二种方法:分配和泛型编译问题
类型不匹配:不能从int转换为长
class Test1 {
<T extends Integer> void m1(T arg) {
long i = arg;
}
void m2(int i) {
Long l = i;// Compilation fails
}
}
有人能帮我理解这种行为。
类型参数T不应由final类型来界定。 –
[Double不能转换为int]的可能重复(https://stackoverflow.com/questions/14088522/double-is-not-converting-to-an-int) – Tom