Есть некоторые предположения, которые необходимо сделать, поскольку не весь код отправлен. Предположим, что set.getEngCourse()
правильно возвращает массив некоторого Object и set
не может быть нулевым, а .getEngCourse()
возвращает как минимум пустой массив, а не null, если нет курсов (если любое из этих допущений может быть нарушено, добавьте соответствующие нулевые проверки). Было бы лучше, если бы возвращаемый массив имел определенный тип (например, EngCourse
), но код OP не уточняет, что находится в массиве.
Я хотел бы подойти к решению таким образом, подобное приведенному ниже:
StringBuilder txt = new StringBuilder(); // get something to collect the output
for (Object obj : set.getEngCourse) { // If possible, change Object to the specific type
// add a line break if we have already added something,
if (txt.length() > 0) {
txt.append("\n");
}
txt.append(String.valueOf(obj)); // will handle null objects
}
taken = new TextArea(txt.toString()); // assumes taken is declared elsewhere
Если есть известный тип объекта, было бы лучше, чтобы:
- переопределять
.toString()
на объекте тип
Использование конкретного типа объекта в итерации
for (EngCourse ec : set.getEngCourse()) { //use specific type
...
txt.append(ec.toString()); //technically, the .toString() is not needed
}
Кроме того, если .getEngCourse()
возвращает несколько объектов, я бы рекомендовал изменение названия на .getEngCourses()
, чтобы понять, что она возвращается N курсы, а не только один курс.
Если нет необходимости в TextArea
, я бы также рассмотрел возможность использования JList
или чего-то подобного. В принципе, сброс всего на TextArea
просто дает результат, без большой возможности сделать что-либо еще с ним (например, выбрать конкретный курс для будущих операций). Рассмотрим, например, этот ответ SO Java JList model. В сущности моделировать домен с использованием соответствующих классов, а затем использовать подход model/view/controller для отображения классов домена, а не думать о домене как о существительных объектах String.
Является ли объект 'txt'' StringBuilder'? – KevinO
Просто строка. должно ли это быть? –
Ваш код отсутствует a} –