0
我正在編寫一個類來集中我的EJB查找。因此,我將一個接口傳遞給一個方法,並將其用作EJB查找的基礎,然後返回適當類的實例。使用Java泛型接受並返回一個實現該接口的類
我想使用泛型,以便在調用方法時不必施放結果。
我已經寫了下面的內容,但是我對它有不好的感覺,而且我很確定它實際上並沒有做我想做的事情。
公共類EJBProvider {
public static <T> T lookupEjb(Class theClass) {
try {
InitialContext ic = new InitialContext();
String simpleName = String.format("java:comp/env/ejb/%s", theClass.getSimpleName());
final T ejb = (T)ic.lookup(simpleName);
return ejb;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
private MyEjbLocal myEjb = EJBProvider.lookupEjb(MyEjbLocal.class);
伽柏Bakos的建議,這應該是一個類'' extends T> – SLaks
我想,如果你使用theClass.cast(ic.lookup(...)),這將是更安全的。 –
這是一個工廠類,還是僅僅是緩存對象? –