创建返回传入的类实例的泛型方法

时间:2013-06-04 02:28:39

标签: java

我在课堂上有以下方法。 AbstractModel是一个泛型,由扩展此类的类传入。该方法当前创建了传入的类的实例。

public AbstractModel newInstance(Class<? extends AbstractModel> clazz){

    return injector.getInstance(clazz);
}

目前我必须这样做:

Person person = (Person) em.newInstance(Person.class);

我想知道我是否可以使用泛型来删除我必须做的转换以使AbstractModel对象成为Person。理想情况下就是这样:

Person person = em.newInstance(Person.class);

我不知道这是否可行,因为我没有将Person对象传递给该方法。

1 个答案:

答案 0 :(得分:3)

您可以将方法签名更改为以下 -

public <T extends AstractModel> T newInstance(Class<T> clazz) {