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);
}
배경 : 저는 최대 절전 모드와 유틸리티 방법을 쓰고 있어요 여기에 그것을하는 일반적인 방법이다. 다음은 실제로 수행하려고 시도하는 예제이며,이 문제에 어떻게 적용되는지 추측 할 수 있습니다.
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;
}
이것이 가능합니까? 그렇다면, 어떻게 완료됩니까? 감사!
호기심 때문에, 왜''()'메소드를 쓰고 ['EntityManager']를 쓰지 않는가? (http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager. HTML)? –
나는 Hibernate를 처음 접했고 EntityManager가 존재한다는 것을 모르기 때문에. 팁 고마워. :) –
이 경우 최소한 Java EE 자습서의 관련 부분은 생략하는 것이 좋습니다. http://docs.oracle.com/javaee/6/tutorial/doc/bnbpy.html –