我把我想做的事情煮成以下最小代码:
public class TestClass {
class Class2Extend {
}
class Foo {
public Foo(Class<Class2Extend> myClass) {
}
}
class Bar extends Class2Extend{
}
public TestClass() {
new Foo(Class2Extend.class); // works fine
//new Foo(Bar.class); -> fails even though Bar extends Class2Extend - but I want something like this to have nice code
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用一个界面,但这样会更干净.任何人都可以给我一个关于这个问题的提示/技巧?
pca*_*cao 13
改成:
class Foo {
public Foo(Class<? extends Class2Extend> myClass) {
}
}
Run Code Online (Sandbox Code Playgroud)
当你说你的参数类型Class<Class2Extend>Java与该参数类型完全匹配时,而不是与任何子类型匹配时,你必须明确指定你想要任何扩展Class2Extend的类.