Прежде всего, это ужасный код.Как насчет этой версии?
public List<Comment> getUserCommentItems() {
if (userCommentItems == null) {
getUserPagingInfo();
List<Comment> comments = jpaController.findAll();
for (Iterator<Comment> iterator = comments.iterator(); iterator.hasNext();){
userComments = iterator.next();
if (!userComments.getMovie().equals(movieController.getMovie()){
iterator.remove();
}
}
userCommntItems = comments;
}
return userCommentItems ;
}
Улучшения:
- Больше не используется устаревший класс Vector (особенно больше нет ненужных приведений)
- Сравните объект, используя
equals()
, а не ==
(вы должны реализовать Movie.equals(Object)
соответственно). - Нет необходимости копировать коллекцию, работайте над оригиналом (если ваш DAO возвращает что-то, что я не могу изменитьтогда это отстой)
Но чтобы действительно решить вашу проблему:
Вы повторно используете этот компонент для различных фильмов?Если это так, хранить комментарии в поле - это нонсенс.Удалить все назначения и читает из userCommentItems
.