我把我想做的事情煮成以下最少的代码:
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
}
}
我可以使用一个界面,但这样会更干净。任何人都可以给我一个关于这个问题的提示/技巧吗?
最佳答案
更改为:
class Foo {
public Foo(Class<? extends Class2Extend> myClass) {
}
}
当你说你的参数是 Class<Class2Extend>
类型时Java 与该参数类型完全匹配,而不是任何子类型,您必须明确指定您想要扩展 Class2Extend 的任何类。
关于java - 传递一个扩展另一个类的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888770/