使用Java Generic接受和接口并返回实现该接口的类



我正在编写一堂课,以集中我的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);

正如Slaks所建议的那样,Class<? extends T>正确执行该类型。

我还整合了使用theClass.cast();

的GáborBakos建议

最新更新