Анализ перечислений с помощью SuperCSV ICsvBeanReader

Я анализирую файл CSV и создаю объекты домена, используя supercsv . В моем доменном объекте есть одно поле перечисления, например: [

public class TypeWithEnum {

private Type type;

public TypeWithEnum(Type type) {
    this.type = type;
}

public Type getType() {
    return type;
}

public void setType(Type type) {
    this.type = type;
}
}

] Мое перечисление выглядит так:

public enum Type {

    CANCEL, REFUND
}

Попытка создать bean-компоненты из этого CSV-файла:

final String[] header = new String[]{ "type"  };
ICsvBeanReader inFile = new CsvBeanReader(new FileReader(
    getFilePath(this.getClass(), "learning/enums.csv")), CsvPreference.STANDARD_PREFERENCE);

final CellProcessor[] processors = 
    new CellProcessor[]{ TODO WHAT TO PUT HERE? };
TypeWithEnum myEnum = inFile.read(
    TypeWithEnum.class, header, processors);

это не удается с Ошибка при заполнении контекста объекта: null обработчик нарушения: null в org.supercsv.io.CsvBeanReader.fillObject (неизвестный источник) at org.supercsv.io.CsvBeanReader.read (Неизвестный источник)

Есть какие-нибудь подсказки по синтаксическому анализу перечислений? Должен ли я написать для этого свой собственный процессор?

Я уже пытался написать свой собственный процессор, примерно так:

class MyCellProcessor extends CellProcessorAdaptor {
    public Object execute(Object value, CSVContext context) {
        Type type = Type.valueOf(value.toString());
        return next.execute(type, context);
    }
}

но он умирает с тем же исключением.

Содержимое моего файла enums.csv очень простое:

CANCEL
ВОЗВРАТ

5
задан Charles 13 February 2012 в 14:38
поделиться