java会编译失败吗?_请问为什么这个通用java代码不会编译?
為什么這個通用java代碼不會編譯?
在這個簡化的例子中,我有一個泛型類,以及一個返回Map而不管類型參數的方法。當我沒有在包含類上指定類型時,為什么編譯器會清除地圖上的類型?import?java.util.Map;public?class?MyClass{
public?Map?getMap()
{
return?null;
}
public?void?test()
{
MyClass?success?=?new?MyClass();
String?s?=?success.getMap().get("");
MyClass?unchecked?=?new?MyClass();
Map?map?=?unchecked.getMap();??//?Unchecked?warning,?why?
String?s2?=?map.get("");
MyClass?fail?=?new?MyClass();
String?s3?=?fail.getMap().get("");??//?Compiler?error,?why?
}}
我得到這個編譯錯誤。MyClass.java:20:?incompatible?types
found???:?java.lang.Objectrequired:?java.lang.String
String?s3?=?fail.getMap().get("");??//?Compiler?error
總結
以上是生活随笔為你收集整理的java会编译失败吗?_请问为什么这个通用java代码不会编译?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java对接ldap_如何使用Java操
- 下一篇: 农用四轮车液压强升强降不好使咋回事往前边