扩展某些超级CSV单元格处理器会生成unchecked
警告。
例如:
package test;
import org.supercsv.cellprocessor.FmtNumber;
public class CustomFmtNumber extends FmtNumber {
public CustomFmtNumber(String formatter) {
super(formatter);
}
}
使用-Xlint:unchecked
编译时会产生以下警告:
CustomFmtNumber.java:5: warning: [unchecked] execute(Object,CsvContext) in FmtNumber implements <T>execute(Object,CsvContext) in CellProcessor
public class CustomFmtNumber extends FmtNumber {
^
return type requires unchecked conversion from Object to T
where T is a type-variable:
T extends Object declared in method <T>execute(Object,CsvContext)
1 warning
CellProcessor
定义execute
如下:
<T> T execute(final Object value, final CsvContext context);
与许多其他实现一样, FmtNumber
确实具有非泛型的execute实现。为什么会这样?
问题适用于超级CSV开发人员 - 为什么在接口中使用泛型类型,在未使用时,可能会在CellProcessor
旁边创建一个非通用接口?这是你可以为下一个版本定位的东西吗?