这是我想做的:
public MyClass extends MySuperClass{
}
public class MySuperClass {
public static void main( String[] args ) {
MyClass mc = setProperties( new Myclass() );
}
public static Class<? extends MySuperClass> setProperties(Class<? extends MySuperClass> myClass){
// set some static properties
return myClass;
}
}
我希望能够将 MySuperClass 的任何子类传递给 setPropterties 并在父类(super class)中设置某些属性后返回它。返回只是为了方便。我只是缺少一些语法吗?或者我对类和通配符的理解不正确?
现在我得到: MySuperClass 类型中的方法 setProperties(Class) 不适用于参数 (MyClass)
最佳答案
I want to be able to pass any subclass of MySuperClass to setPropterties and return it after setting some properties in the superclass. Returning it is just for convinence. Am I just missing some syntax ? or is my understanding of Class
public static MySuperClass setProperties(MySuperClass superClass)
{
// Accept any instance or subclass of MySuperClass
return superClass;
}
Class<?>
的使用
这代表未知类型。 (幽灵般的)。这基本上意味着您不知道此方法将返回什么类类型。
有用链接:http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html
关于Java如何指定一个采用父类(super class)的子类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17884142/