public class ActivityInventoryMem<Activity> extends TreeSet<Activity> implements ActivityInventory<Activity> {
@Override
public ToDo toDo(LocalDate date) {
Stream<Activity> s = this.parallelStream();
s.filter(a -> a.completed());
return new ToDo();
}
}
Вот исключениеПочему поток не распознает мой тип?
java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: java.util.stream.Stream.filter
at com.lm.infrastructure.memory.ActivityInventoryMem.toDo(ActivityInventoryMem.java:16)
at com.lm.infrastructure.memory.ActivityInventoryMemNGTest.testToDo(ActivityInventoryMemNGTest.java:46)
Я бегу его в JDK 8, и я поставил следующие в моей pom.xml
, что теперь он, кажется, признает
<!-- maven-compiler-plugin -->
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
Проблема лямбда в (из того, что я собрал из netbeans) заключается в том, что он обрабатывает a
как просто Object
, а не Activity
, и поэтому он не может видеть .completed()
, как я могу это исправить?
Я не знаю, если это ваш полный код, но если она есть, 's.filter()' вызов эффективно ничего не делает. Это ленивая промежуточная операция. Поток фактически ничего не сделает, пока вы не добавите операцию терминала. См. Документацию класса 'java.util.stream'. –