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