Рассмотрите класс, который основан на данных, найденных в строке CSV, и сохраняет некоторые из его полей. Имеет смысл создать два конструктора для этого класса - один из исходной строки CSV и один с явным присваиванием переменной.Java: конструкторы перегрузки, которые называют друг друга
например,
public MyClass(String csvLine)
{
String[] fields = StringUtils.split(csvLine, ',');
this(fields[3], fields[15], Integer.parseInt([fields[8]));
}
public MyClass(String name, String address, Integer age)
{
this.name=name;
this.address=address;
this.age=age;
}
В Java, это не удается, потому что:
Конструктор вызов должен быть первым оператором в конструкторе WhereOnEarth.java
Что такое правильный способ реализовать это?
+1 Это также рекомендуется «Эффективная Java». Благодаря! –
+1 Это также может быть статический заводский метод в 'MyClass', например. 'MyClass.parse (String csv)' (если вы не против смешения _little_!) – DNA
@DNA: да, см. Мой ответ. Хотя если синтаксический анализ немного сложнее (или существует более одного источника, например XML), развязка очень приветствуется. –