我正在编写一个类来集中我的EJB查找。因此,我将一个接口传递给一个方法,并将其用作EJB查找的基础,然后返回相应类的实例。
我想使用泛型,这样我就不必在调用方法时强制转换结果。
我已经写了下面的代码,它是有效的,但我对它有一种不好的预感,我非常确定它实际上没有做我想要的事情。
公共类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);发布于 2014-02-06 17:32:35
正如SLaks所建议的,Class<? extends T>正确地实施了类型。
我还集成了Gábor Bakos关于使用theClass.cast();的建议
https://stackoverflow.com/questions/21585258
复制相似问题