Tag: java 8

Lambdas в classическом примере enums

Как многие из вас могут знать, есть classический пример enums Operation (с использованием стандартного интерфейса Java 8), а именно: enum Operation implements DoubleBinaryOperator { PLUS(“+”) { @Override public double applyAsDouble(final double left, final double right) { return left + right; } }, MINUS(“-“) { @Override public double applyAsDouble(final double left, final double right) { return […]

java.lang.NullPointerException выбрасывается с использованием ссылки на метод, но не lambda-выражения

Я заметил что-то странное относительно необработанных исключений, используя ссылку на метод Java 8. Это мой код, используя выражение () -> s.toLowerCase() : public class Test { public static void main(String[] args) { testNPE(null); } private static void testNPE(String s) { Thread t = new Thread(() -> s.toLowerCase()); // Thread t = new Thread(s::toLowerCase); t.setUncaughtExceptionHandler((t1, e) […]

Назначение третьего аргумента функции «уменьшить» в функциональном программировании Java 8

При каких обстоятельствах третий аргумент «уменьшить» вызван в streamах Java 8? Приведенный ниже код пытается пересечь список строк и складывать значения кодовых точек первого символа каждого из них. Значение, возвращаемое окончательной лямбдой, никогда не используется, и если вы вставляете println, это никогда не будет вызвано. Документация описывает это как «объединитель», но я не могу найти […]

Используют ли методы по умолчанию Java 8 по умолчанию?

Как правило, исходный код Java был передовым. До Java 8, насколько мне известно, и скомпилированные classы, и исходные файлы были совместимы с более поздними версиями JDK / JVM. [Обновление: это неверно, см. Комментарии re ‘enum’ и т. Д. Ниже.] Однако с добавлением методов по умолчанию в Java 8 это больше не имеет места. Например, библиотека, […]

Программа, созданная с помощью Java 8, может быть запущена на Java 7?

я немного смущен. Oracle говорит, что Java 8 очень совместим с Java 7 (назад). Но, какие возможности существуют, что Java 8-программа может быть успешно запущена на Java 7 (SE / EE)? Если первая точка верна, приложения Java 8 будут развернуты и выполнены на сервере поддержки Java 7? например, Tomcat 8 или WildFly?

Может ли метод интерфейса иметь тело?

Я знаю, что интерфейс похож на 100% чистый абстрактный class. Таким образом, в нем не может быть реализации метода. Но я увидел странный код. Может ли кто-нибудь объяснить это? Фрагмент кода: interface Whoa { public static void doStuff() { System.out.println(“This is not default implementation”); } } РЕДАКТИРОВАТЬ: Моя IDE – это идея Intellij 13.1. SDK […]

Самый эффективный способ получить последний элемент streamа

У streamа нет метода last() : Stream stream; T last = stream.last(); // No such method Какой самый элегантный и / или эффективный способ получить последний элемент (или null для пустого streamа)?

Java 8 forEach с индексом

Есть ли способ построить метод forEach в Java 8, который выполняет итерацию с индексом? В идеале мне бы хотелось что-то вроде этого: params.forEach((idx, e) -> query.bind(idx, e)); Лучшее, что я мог сделать сейчас: int idx = 0; params.forEach(e -> { query.bind(idx, e); idx++; });

Tomcat 8 Maven Plugin для Java 8

Является ли tomcat7-maven-plugin работой с сервером tomcat 8 и java 8? Я не могу найти tomcat8-maven-plugin .

Как применить несколько предикатов к java.util.Stream?

Как применить несколько предикатов к методу java.util.Stream’s filter() ? Это то, что я сейчас делаю, но мне это не очень нравится. У меня есть Collection вещей, и мне нужно уменьшить количество вещей на основе Collection фильтров (предикатов): Collection things = someGenerator.someMethod(); List filtered = things.parallelStream().filter(p -> { for (Filter f : filtersCollection) { if (f.test(p)) […]

Давайте будем гением компьютера.