0

我在课堂上有以下方法。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 对象传递给该方法。

4

1 回答 1

3

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

public <T extends AstractModel> T newInstance(Class<T> clazz) {
于 2013-06-04T02:31:13.887 回答