Skip to content

Строки #12

@BruchesLena

Description

@BruchesLena

Очень, очень много работы со строками
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 должна быть вся работа со строками, никакого "а давайте порежем строчку на куски" в методах классов модели

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions