扩展supercsv单元处理器实现会生成警告

时间:2016-11-24 07:43:15

标签: java generics supercsv

扩展某些超级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旁边创建一个非通用接口?这是你可以为下一个版本定位的东西吗?

0 个答案:

没有答案