У меня есть список объектов, и я хочу отфильтровать эти объекты определенного типа c, привести их и собрать в новый список. Вот почему я использую потоковый API, предложенный в следующих вопросах:
Java 8 Stream API: отфильтруйте по экземпляру и приведите
Возможно ли это для сотворения потока в Java 8?
Тем не менее, Intellij говорит мне, что после фильтрации, приведения и сбора и повторного сбора собранного списка я хочу выяснить, почему? И, если я приму предложение, ошибка исчезнет, но верно ли это сделать?
Справочная информация: я разрабатываю stati c программный анализ с Eclipse JDT, поэтому я перезаписываю методы visit () для обработки узлов AST с указанным типом c.
Вот мой код обработки AnnotationTypeDeclaration:
@Override
public boolean visit(AnnotationTypeDeclaration node) {
List<AnnotationTypeMemberDeclaration> memberDeclarations = (List<AnnotationTypeMemberDeclaration>) node.bodyDeclarations().stream()
.filter(AnnotationTypeMemberDeclaration.class::isInstance)
.map(AnnotationTypeMemberDeclaration.class::cast)
.collect(Collectors.toList());
// ... do something with the memberDeclarations
return true;
}
Вот определение annotationTypeDeclaration.bodyDeclarations ():
public List bodyDeclarations() {
return this.bodyDeclarations;
}