W podobnym problemie jak opisano w this unanswered question i this other unanswered question, otrzymuję ostrzeżenie w czytaniu usługi Eclipse Luna Service Release 1 (4.4.1) (20140925-1800), "(Odzyskane) Wewnętrzna niespójność wykryte podczas analizy kształtu lambda ". Kod jest w następujący sposób:Wykryto wewnętrzną niespójność podczas analizy kształtu lambda
public static <T> T findFirst(Iterable<T> list, Predicate<T> condition) {
/* ... */
}
public static Integer findFirstPrime(Iterable<Integer> integers) {
return findFirst(integers,
integer -> {
/* return either true or false */
}
);
}
Ostrzeżenie jest podniesiony na czytaniu tekstu integer ->
. Jest bug report, stwierdzając, że problem został rozwiązany dla Eclipse Mars 4.5, ale co mogę zrobić w międzyczasie? Jeśli chcę użyć numeru @SuppressWarnings
, to skąd mam wiedzieć, jaki typ ostrzeżenia należy podać?
Często można dostać pozbyć się tych ostrzeżeń za pomocą niewielkiego trzymania ręki, aby zmniejszyć obciążenie dla implementacji wnioskowania typu, np coś jak '(Integer integer) -> ...', aby upewnić się, że wie, co robi. –