Запитання з тегом «java-8»

Використовуйте цей тег для питань, специфічних для Java 8, це версія 8 (внутрішній номер 1.8) платформи Java, випущена 18 березня 2014 року. У більшості випадків слід також вказати тег Java.

5
Java8: Чому заборонено визначати метод за замовчуванням для методу з java.lang.Object
Методи за замовчуванням - це гарний новий інструмент у нашій панелі інструментів Java. Однак я спробував написати інтерфейс, який визначає defaultверсію toStringметоду. Java каже мені, що це заборонено, оскільки методи, оголошені в, java.lang.Objectможуть не defaultредагуватися. Чому це так? Я знаю, що існує правило "базовий клас завжди виграє", тому за замовчуванням …


5
Чи є якась користь від оновлення компільованого коду Java 7 до Java 8?
У мене є стара програма, написана за допомогою Java 7. Вона працює в Java 8 JRE. Я не планую переписувати жоден код, щоб використовувати функції Java 8. Чи є якась технічна вигода від оновлення складеного коду до останнього Java 8 JDK? Щоб було зрозуміло, код наразі компілюється з Java 7 …
127 java  performance  java-8 


4
Перейдіть до наступного елемента, використовуючи цикл foreach Java 8 у потоці
У мене проблема з потоком Java 8 foreach, який намагався перейти до наступного елемента в циклі. Я не можу встановити команду як continue;, return;працює лише, але ви вийдете з циклу в цьому випадку. Мені потрібно перейти до наступного елемента в циклі. Як я можу це зробити? Приклад (не працює): try(Stream<String> …
126 java  java-8 

1
Чому ZoneOffset.UTC! = ZoneId.of ("UTC")?
Чому ZonedDateTime now = ZonedDateTime.now(); System.out.println(now.withZoneSameInstant(ZoneOffset.UTC) .equals(now.withZoneSameInstant(ZoneId.of("UTC")))); роздрукувати false? Я б очікував, що обидва ZonedDateTimeвипадки будуть рівними.

10
Скопіюйте потік, щоб уникнути "потоку вже було запущено або закрито"
Я хотів би дублювати потік Java 8, щоб я міг з ним двічі мати справу. Я можу collectяк список і отримувати з цього нові потоки; // doSomething() returns a stream List<A> thing = doSomething().collect(toList()); thing.stream()... // do stuff thing.stream()... // do other stuff Але я думаю, що має бути більш …

3
Відформатуйте LocalDateTime за допомогою часового поясу на Java8
У мене є такий простий код: DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss.SSSSSS Z"); LocalDateTime.now().format(FORMATTER) Тоді я отримаю наступне виняток: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: OffsetSeconds at java.time.LocalDate.get0(LocalDate.java:680) at java.time.LocalDate.getLong(LocalDate.java:659) at java.time.LocalDateTime.getLong(LocalDateTime.java:720) at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298) at java.time.format.DateTimeFormatterBuilder$OffsetIdPrinterParser.format(DateTimeFormatterBuilder.java:3315) at java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2182) at java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1745) at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1719) at java.time.LocalDateTime.format(LocalDateTime.java:1746) Як вирішити це питання?
121 java  java-8  java-time 

3
Вилучити перший елемент, який відповідає критеріям
Як отримати перший елемент, який відповідає критеріям у потоці? Я спробував це, але не виходить this.stops.stream().filter(Stop s-> s.getStation().getName().equals(name)); Цей критерій не працює, метод фільтра використовується в іншому класі, ніж Stop. public class Train { private final String name; private final SortedSet<Stop> stops; public Train(String name) { this.name = name; this.stops …
121 java  java-8  java-stream 

9
Чи використовуються лямбда-вирази, окрім збереження рядків коду?
Чи використовуються лямбда-вирази, окрім збереження рядків коду? Чи є якісь особливості, що надаються лямбдами, які вирішували проблеми, які нелегко було вирішити? Типове використання, яке я бачив, це те, що замість цього писати: Comparator<Developer> byName = new Comparator<Developer>() { @Override public int compare(Developer o1, Developer o2) { return o1.getName().compareTo(o2.getName()); } }; …
120 java  lambda  java-8 

4
Комплектація майбутнього | то Застосувати проти, тоді скласти
Я не можу голову навколо різниці між thenApply() і thenCompose(). Отже, чи може хтось надати справжній випадок використання? З документів Java: thenApply(Function<? super T,? extends U> fn) Повертає нове, CompletionStageяке, коли цей етап нормально завершується, виконується з результатом цього етапу як аргументом наданої функції. thenCompose(Function<? super T,? extends CompletionStage<U>> fn) …

6
Що означає лямбда з 2 стрілками на Java 8?
Я раніше читав кілька навчальних посібників Java 8. Зараз я зіткнувся з такою темою: Чи підтримує java Currying? Тут я бачу такий код: IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b; System.out.println(curriedAdd.apply(1).applyAsInt(12)); Я розумію, що цей приклад становить 2 елементи, але я не можу зрозуміти конструкцію: a -> …
118 java  lambda  java-8  currying 

3
Чим відрізняється PermGen від Metaspace?
До Java 7 існувала область пам'яті JVM під назвою PermGen , де JVM використовував для збереження своїх класів. У Java 8 її видалили та замінили область, яка називається Metaspace . Які найбільш важливі відмінності між PermGen та Metaspace? Єдине, що я знаю, - це те, що java.lang.OutOfMemoryError: PermGen spaceбільше не …

3
Як перевірити, чи існує елемент, використовуючи лямбда-вираз?
Зокрема, у мене є TabPane, і я хотів би знати, чи є в ньому елемент із конкретним ідентифікатором. Отже, я хотів би зробити це з виразом лямбда на Java: boolean idExists = false; String idToCheck = "someId"; for (Tab t : tabPane.getTabs()){ if(t.getId().equals(idToCheck)) { idExists = true; } }
118 java  java-8  lambda 

5
Чи забезпечує Java 8 хороший спосіб повторити значення чи функцію?
У багатьох інших мовах, наприклад. Haskell, легко повторити значення або функцію кілька разів, наприклад. щоб отримати список з 8 примірників значення 1: take 8 (repeat 1) але я ще не знайшов цього в Java 8. Чи є така функція в JDK Java 8? Або ж щось еквівалентне такому діапазону [1..8] …
118 java  java-8 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.