如何将字符串转换为实现接口的类型?

时间:2014-12-12 08:23:05

标签: java generics casting

我有一个字符串com.bar.Baz。我想获得Class<T>,其中T是从字符串扩展接口com.bar.Foo的任何东西。

这是我尝试过的,但它允许任何类类型,这是错误的。

更新:(根据评论)

@SuppressWarnings("unchecked")
    public static <T extends Foo> Class<T> getClassOfTypeT(String clazz) {
        Class<T> ruleType = null;
        try {
            ruleType = (Class<T>) Class.forName(clazz);
        } catch (ClassNotFoundException e) {
            logger.error("Can't cast " + clazz, e);
        }
        return ruleType;
    }


    public static void main(String[] args) {
        System.out.println(getClassOfTypeT("java.lang.String"));//Should not be allowed
    }

如何从字符串中获取Class<T>

0 个答案:

没有答案