0

Extending some Super CSV cell processor generates unchecked warning.

For example:

package test;

import org.supercsv.cellprocessor.FmtNumber;

public class CustomFmtNumber extends FmtNumber {
    public CustomFmtNumber(String formatter) {
        super(formatter);
    }
}

When compiled with -Xlint:unchecked produces following warning:

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 defines execute as follows:

<T> T execute(final Object value, final CsvContext context);

FmtNumber has indeed non-generic implementation of execute, like many other implementations. Why is it so?

Question is for Super CSV developers -- why use generic types in interface, when its not used, maybe create a non-generic interface beside CellProcessor ? Is this something you can target for your next release?

ilvez
  • 1,235
  • 3
  • 16
  • 27

0 Answers0