由于'A'表达式,此代码无法编译.有趣的是:在预期的表达中
List<Foo>Run Code Online (Sandbox Code Playgroud) 泛型,但得到了 List<anonymous Foo> Run Code Online (Sandbox Code Playgroud)(根据编译器).它是一个jdk错误或功能?
interface Foo{ void doFoo(); }
public class GenericsTest {
public static<V> List<V> bar(V v){ return new ArrayList<V>();}
public static void main(String[] args) {
List<Foo> f = bar(new Foo(){ //A
public void doFoo() { }
}); //don't compiles
Foo fooImpl = new Foo(){
public void doFoo() { }
};
List<Foo> f2 = bar(fooImpl); //compiles
}
}