函数参数Class <type>不接受</type>类型的子类

时间:2014-05-09 16:59:18

标签: java class reflection

我有一个参数Class<SearchForm> formType的方法,在方法中我调用formType.newInstance()来获取表单的实例。我需要能够传入SearchForm的子类,但是当我尝试传入MySearchForm.class(MySearchForm扩展SearchForm)时,eclipse告诉我我无法传递Class<MySearchForm>类型的参数{ {1}}。

如何传入扩展所需父类的类,然后实例化该类的对象?

2 个答案:

答案 0 :(得分:3)

您可以使用upper bound generic wildcard Class<? extends SearchForm>

答案 1 :(得分:1)

即使Class<MySearchForm>Class<SearchForm>,您也无法传递MySearchForm,因为它不是SearchForm

但是,您可以在方法中使用通配符参数,定义如下:

... yourMethod(Class<? extends SearchForm> formType)