繁体   English   中英

如何检索泛型类的类

[英]How to retrieve the class of a generic type

我有一个像这样的通用方法:

public class ClassName {
    public <T> List<T> methodeName(String path)
        throws FileNotFoundException {
    CSVReader reader = new CSVReader(new FileReader(path), ',', '\"');

    HeaderColumnNameTranslateMappingStrategy<T> strat = new HeaderColumnNameTranslateMappingStrategy<T>();

    strat.setType(T.class);

在最后一行( T.class )中,eclipse向我展示Illegal class literal for the type parameter T这个synthax-error Illegal class literal for the type parameter T

像这样提出的解决方案: Java泛型 - 检索类型对我没有帮助。 方法getClass()只返回当前类。

我是仿制药的新手,但我确信这个问题有一个简单的答案。

简单的答案是:您必须将Class<T>参数传递给方法。

public <T> List<T> methodeName(String path, Class<T> clazz) throws FileNotFoundException {
    CSVReader reader = new CSVReader(new FileReader(path), ',', '\"');

    HeaderColumnNameTranslateMappingStrategy<T> strat = 
        new HeaderColumnNameTranslateMappingStrategy<T>();
    strat.setType(clazz);
}

...

ClassName cn = new ClassName();
List<Foo> foos = cn.methodeName(somePath, Foo.class);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM