获取参数化泛型类型的类型

时间:2018-06-07 02:08:35

标签: java generics

这是我必须实现的简化方法:

class Sample<T> {
    Class<List<T>> getType() {

    }
}

所以它的解决方案可能是:

class Sample<T> {

    final Class<List<T>> type;

    Sample(Class<List<T>> type) {
        this.type = type;
    }

    Class<List<T>> getType() {
        return type;
    }

    static void test() {
        @SuppressWarnings("unchecked")
        Class<List<Integer>> clazz = (Class<List<Integer>>) (Class<?>) List.class;
        Sample<Integer> sample = new Sample<>(clazz);
    }
}

有没有办法在实例化clazz时避免警告?

甚至更好 - 避免在构造函数中传递它,只是根据类类型获得所需的结果?

谢谢!

0 个答案:

没有答案