Java: how do I get a class literal from a generic type?

后端 未结 8 1420
北荒
北荒 2020-11-22 07:18

Typically, I\'ve seen people use the class literal like this:

Class cls = Foo.class;

But what if the type is generic, e.g. List?

8条回答
  •  耶瑟儿~
    2020-11-22 08:22

    Due to the exposed fact that Class literals doesn't have generic type information, I think you should assume that it will be impossible to get rid of all the warnings. In a way, using Class is the same as using a collection without specifying the generic type. The best I could come out with was:

    private > List getList(Class cls) {
        List res = new ArrayList();
        // "snip"... some stuff happening in here, using cls
        return res;
    }
    
    public > List> getList() {
        return getList(A.class);
    }
    

提交回复
热议问题