我有一个像这样的通用方法:
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);
Run Code Online (Sandbox Code Playgroud)
在最后一行(T.class)中,eclipse向我展示了这个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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2567 次 |
| 最近记录: |