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(...)),这将是更安全的。 –
这是一个工厂类,还是仅仅是缓存对象? –