0

这是我想做的事情:

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 并在超类中设置一些属性后返回它。退货只是为了方便。我只是缺少一些语法吗?还是我对类和通配符的理解不正确?

现在我得到: MySuperClass 类型中的方法 setProperties(Class) 不适用于参数 (MyClass)

4

1 回答 1

3

我希望能够将 MySuperClass 的任何子类传递给 setPropterties 并在超类中设置一些属性后返回它。退货只是为了方便。我只是缺少一些语法吗?还是我对 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

于 2013-07-26T14:35:11.220 回答