为什么这段通用的Java代码无法编译?

10 浏览
0 Comments

为什么这段通用的Java代码无法编译?

在这个简化的例子中,我有一个通用类和一个方法,无论类型参数如何,该方法都返回一个Map。为什么当我在包含类上不指定类型时,编译器会清除Map上的类型?

我得到了这个编译错误。

MyClass.java:20: 不兼容的类型

找到:java.lang.Object

需要:java.lang.String

String s3 = fail.getMap().get(""); // 编译错误

0