Вопросы с тегом «java-8»

130
Java8: почему запрещено определять метод по умолчанию для метода из java.lang.Object

Методы по умолчанию - отличный новый инструмент в нашем наборе инструментов Java. Однако я попытался написать интерфейс, определяющий defaultверсию toStringметода. Java сообщает мне, что это запрещено, поскольку методы, объявленные в, java.lang.Objectнельзя defaultредактировать. Почему это так? Я...

127
Перейти к следующему элементу с помощью цикла foreach в Java 8 в потоке

У меня проблема с потоком Java 8 foreach, пытающимся перейти к следующему элементу в цикле. Я не могу установить команду вроде continue;, только return;работает, но в этом случае вы выйдете из цикла. Мне нужно перейти к следующему элементу цикла. Как я могу это сделать? Пример (не работает):...

127
Есть ли польза от обновления скомпилированного кода Java 7 до Java 8?

У меня есть старое приложение, написанное на Java 7. Оно отлично работает в Java 8 JRE. Я не планирую переписывать какой-либо код, чтобы использовать функции Java 8. Есть ли какие-либо технические преимущества в обновлении скомпилированного кода до последней версии Java 8 JDK? Чтобы было ясно, код...

122
Получить первый элемент, соответствующий критериям

Как получить первый элемент, соответствующий критерию в потоке? Я пробовал это, но не работает this.stops.stream().filter(Stop s-> s.getStation().getName().equals(name)); Этот критерий не работает, метод фильтра вызывается не в классе Stop. public class Train { private final String name; private...

121
Скопируйте поток, чтобы избежать «поток уже обработан или закрыт»

Я хотел бы продублировать поток Java 8, чтобы иметь возможность работать с ним дважды. Я могу collectкак список и получать новые потоки из этого; // doSomething() returns a stream List<A> thing = doSomething().collect(toList()); thing.stream()... // do stuff thing.stream()... // do other...

120
Есть ли у лямбда-выражений какое-либо применение, кроме сохранения строк кода?

Есть ли у лямбда-выражений какое-либо применение, кроме сохранения строк кода? Есть ли какие-либо специальные функции, предоставляемые лямбдами, которые решают проблемы, которые было нелегко решить? Типичное использование, которое я видел, заключается в том, что вместо написания этого:...

119
Получить последний элемент Stream / List в однострочном формате

Как я могу получить последний элемент потока или списка в следующем коде? Где data.careasнаходится List<CArea>: CArea first = data.careas.stream() .filter(c -> c.bbox.orientationHorizontal).findFirst().get(); CArea last = data.careas.stream() .filter(c -> c.bbox.orientationHorizontal)...

119
CompletableFuture | thenApply против thenCompose

Я не могу понять разницу между thenApply() и thenCompose(). Итак, может ли кто-нибудь предоставить допустимый вариант использования? Из документов Java: thenApply(Function<? super T,? extends U> fn) Возвращает новое значение, CompletionStageкоторое при нормальном завершении этого этапа...

118
Предоставляет ли Java 8 хороший способ повторить значение или функцию?

На многих других языках, например. Haskell, легко повторить значение или функцию несколько раз, например. чтобы получить список из 8 копий значения 1: take 8 (repeat 1) но я еще не нашел этого в Java 8. Есть ли такая функция в JDK Java 8? Или, альтернативно, что-то эквивалентное диапазону вроде...

118
Как проверить, существует ли элемент с помощью лямбда-выражения?

В частности, у меня есть TabPane, и я хотел бы знать, есть ли в нем элемент с определенным идентификатором. Итак, я хотел бы сделать это с помощью лямбда-выражения в Java: boolean idExists = false; String idToCheck = "someId"; for (Tab t : tabPane.getTabs()){ if(t.getId().equals(idToCheck)) {...

118
Что означает лямбда с двумя стрелками в Java 8?

Раньше я читал несколько руководств по Java 8. Прямо сейчас я столкнулся со следующей темой: поддерживает ли Java каррирование? Здесь я вижу следующий код: IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b; System.out.println(curriedAdd.apply(1).applyAsInt(12)); Я понимаю, что...

118
В чем разница между PermGen и Metaspace?

До Java 7 в памяти JVM была область под названием PermGen , где JVM хранила свои классы. В Java 8 он был удален и заменен областью под названием Metaspace . Каковы наиболее важные различия между PermGen и Metaspace? Единственное различие, которое я знаю, это то, что java.lang.OutOfMemoryError:...

116
Методы по умолчанию в Java 8 как признаки: безопасно?

Безопасно ли использовать методы по умолчанию в качестве плохой версии трейтов в Java 8? Некоторые утверждают, что это может расстроить панд, если вы используете их только ради этого, потому что это круто, но это не мое намерение. Также часто напоминают, что методы по умолчанию были введены для...

115
Как отлаживать stream (). Map (…) с помощью лямбда-выражений?

В нашем проекте мы переходим на java 8 и тестируем его новые функции. В моем проекте я использую предикаты и функции Guava для фильтрации и преобразования некоторых коллекций с помощью Collections2.transformи Collections2.filter. В этой миграции мне нужно изменить, например, код guava на изменения...