|
|
1
34
知道了。这实际上 不是 一只看起来很奇怪的虫子。 从 section 4.8 (raw types) of the JLS :
因此,即使方法的类型签名不使用类本身的任何类型参数,类型擦除也会开始,签名会变得有效
换句话说,我认为您可以将原始类型想象为与泛型类型相同的API,但具有所有
编辑:此代码:
编译,因为有一个隐式但未经检查的原始转换
|
|
|
2
3
嗯…不幸的是,我不能告诉你失败的原因。但我可以给你一个简单的解决方法:
更改的类型
|
|
|
3
3
这个问题很有趣,乔恩·斯基特的回答也很有趣。 我只是想补充一些关于Java编译器这种行为的愚蠢或愚蠢。 我认为编译器假定 如果不在generic类中指定类型参数,则根本无法(或不想)使用任何类型参数。 . 您可以在5之前使用Java版本,或者喜欢手工制作强制转换。 在我看来这并不愚蠢。 |
|
4
1
泛型类型在编译后将被擦除。 当你这样做的时候:
您将强制从map强制转换为map<string、string>,这就是未选中警告的原因。但是,之后您可以执行以下操作:
因为map的类型是map<string,string>。 但是,当你这样做的时候
您不会将fail.getmap()强制转换为任何内容,因此它被认为是简单的map,而不是map<string,string>。 在后者中,您应该做的是:
它仍然会发出警告,但无论如何都会起作用。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |