4
class SomeClass<E> {
Map<String, String> someMethod();
}
SomeClass a = new SomeClass();
a.someMethod().get("foo") // returns object, not string!
//This code would not even compile
String s = a.someMethod().get("foo");
不同,但如果我從SomeClass的刪除泛化(<Ë>)方法返回 - 它的工作原理。
如果我提取這種方法界面和使用界面在聲明它也適用:
interface Foo {
Map<String, String> someMethod();
}
class SomeClass implements Foo {
//.....
}
Foo foo = new SomeClass();
String s = foo.someMethod().getString("A");//it works
爲什麼會發生?我在哪裏可以讀到它?什麼是最好的解決方法? 謝謝。
'SomeClass > a = new SomeClass();'也可以。 – 2010-06-28 12:45:35
在第4.8章結尾附近,有一個討論使用NonGeneric類和RawMember類來顯示它,它至少對靜態成員('RawMember類'中的'Collection')至少有效......真奇怪。 –
2010-06-28 12:51:40
@Andreas_D:我看到了,但我不確定它的情況是否完全相同。這確實很奇怪。 – 2010-06-28 13:00:51