Я только что обновил свои NetBeans с 8.0 до 8.0.1 и мой JDK с 1.8.0 до 1.8.0u20. Вероятнее всего, моя проблема вызвана jdk-обновлением.Java 8 Lambda Autoboxing Reduce-Method
До обновления я был в состоянии собрать эту строку кода:
int sum = myIntegerList.stream().reduce(0, (a, b) -> a + b, (c, d) -> c + d);
Сейчас эта привычка компилировать больше. NetBeans сообщает мне, что «основной класс не может быть найден или загружен».
Теперь я должен написать это:
Integer sum = myIntegerList.stream().reduce(0, (a, b) -> a + b, (c, d) -> c + d);
или
int sum = (int) myIntegerList.stream().reduce(0, (a, b) -> a + b, (c, d) -> c + d);
или
int sum = myIntegerList.stream().reduce(0, (Integer a, Integer b) -> a + b, (Integer c, Integer d) -> c + d);
Кто-нибудь знает, почему это не работает больше? Я делаю что-то неправильно?
«основной класс не может быть найден или загружен» - это не ошибка компиляции, это просто означает, что NetBeans не знает, какой класс содержит 'public static void main (String [] args)' метод, или вы пытаетесь запустить класс, который не имеет метода 'main'. Это не настоящая причина проблемы. – Jesper
Я пробовал компилировать ваш код в командной строке с помощью JDK 8u20. Компилятор с ошибкой «NullPointerException»! Это похоже на ошибку в компиляторе JDK 8u20. – Jesper
Рад слышать, что, скорее всего, это не моя ошибка. Спасибо! – jbw