Очень, очень много работы со строками
String[] g = grammems.split("\|");
Зачем делать так, когда можно иметь поле String[] grammems и не разбивать строку каждый раз, когда позовут этот метод?
Класс спроектирован неправильно - из-за публичных полей ты не можешь быть уверена что что-то поменялось
Правильнее - передавать значения для этих полей в конструктор, что необходимо получить из строчек - получать в конструкторе
Он у тебя создается в
model.Corpora.loadCorpus(String path, boolean openCorpora) throws IOException
Wordform wordform = new Wordform();
if (!openCorpora) {
if (l.length==4) {
wordform.grammems = l[3];
}
else {
wordform.grammems = l[4];
}
}
else {
wordform.grammems = l[5];
}
wordform.lemma = l[2];
wordform.wordform = l[1];
wordform.partOfSpeech = l[3];
if (l.length>5) {
wordform.additionalFeatures = l[5];
}
sentence.words.add(wordform);
Любое изменение в формате или добавление нового поля - убьет тут все, как выстрелом из гаубицы
Индексы сместились на 1, и всё подохло
Подумай, что можно с этим сделать
Не надо прямо тут писать поля класса WordForm - заведи у этого класса конструктор с параметрами, которыми ты его инициализируешь
Парсь, а потом создавай WordForm со всеми необходимыми данными вызовом этого конструктора
В методе loadCorpus должна быть вся работа со строками, никакого "а давайте порежем строчку на куски" в методах классов модели
Очень, очень много работы со строками
String[] g = grammems.split("\|");
Зачем делать так, когда можно иметь поле String[] grammems и не разбивать строку каждый раз, когда позовут этот метод?
Класс спроектирован неправильно - из-за публичных полей ты не можешь быть уверена что что-то поменялось
Правильнее - передавать значения для этих полей в конструктор, что необходимо получить из строчек - получать в конструкторе
Он у тебя создается в
model.Corpora.loadCorpus(String path, boolean openCorpora) throws IOException
Wordform wordform = new Wordform();
if (!openCorpora) {
if (l.length==4) {
wordform.grammems = l[3];
}
else {
wordform.grammems = l[4];
}
}
else {
wordform.grammems = l[5];
}
wordform.lemma = l[2];
wordform.wordform = l[1];
wordform.partOfSpeech = l[3];
if (l.length>5) {
wordform.additionalFeatures = l[5];
}
sentence.words.add(wordform);
Любое изменение в формате или добавление нового поля - убьет тут все, как выстрелом из гаубицы
Индексы сместились на 1, и всё подохло
Подумай, что можно с этим сделать
Не надо прямо тут писать поля класса WordForm - заведи у этого класса конструктор с параметрами, которыми ты его инициализируешь
Парсь, а потом создавай WordForm со всеми необходимыми данными вызовом этого конструктора
В методе loadCorpus должна быть вся работа со строками, никакого "а давайте порежем строчку на куски" в методах классов модели