我想知道在 Java 中是否有一种方法可以在泛型方法中使用泛型类型,而无需指定类类型的参数。这是正常的做法:
public <T> T doSomethingGeneric(Class<T> type, int a) {
return (T) doSomethingElse(type, a);
}
我想这个作为替代:
public <T> T doSomethingGeneric(int a) {
return (T) doSomethingElse(/* some magic with T here */, a);
}
背景:我正在用 Hibernate 编写实用程序方法。这是我实际尝试做的一个示例,您可以推断它如何应用于此问题。
public static <M extends Model> M get(Class<M> type, Serializable id) {
Session session = newSession();
Transaction t = session.beginTransaction();
Object model = null;
try {
model = session.get(type, id);
t.commit();
} catch (HibernateException ex) {
t.rollback();
throw ex;
}
return (M) model;
}
这可能吗?如果是这样,它是如何完成的?谢谢!