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

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

3
Посилання методу Java 8: надайте Постачальник, здатний надати параметризований результат
Я хотів би скористатися java.util.Optional.orElseThrow() з типом винятку, який запитує параметр конструктора. Щось на зразок цього: .orElseThrow(MyException::new(someArgument)) // obviously NOT working Чи є спосіб створити Постачальника, який передає значення мого аргументу?
259 java  java-8  java-stream 

7
Ігноруйте дублікати при створенні карти за допомогою потоків
Map<String, String> phoneBook = people.stream() .collect(toMap(Person::getName, Person::getAddress)); я отримав java.lang.IllegalStateException: Duplicate key коли знайдений дублюваний елемент. Чи можна ігнорувати такий виняток при додаванні значень на карту? Коли є дублікат, його просто слід продовжувати, ігноруючи цей дублікат ключа.
257 java  java-8  java-stream 

4
Яка різниця між Instant і LocalDateTime?
Я це знаю: Миттєвий швидше - це "технічне" представлення часових позначок (наносекунд) для обчислень. LocalDateTime - це швидше представлення дати / годинника, включаючи часові пояси для людей. Але врешті-решт ІМО обидва можна вважати типом для більшості випадків використання додатків. Наприклад, зараз я виконую пакетну роботу, де мені потрібно обчислити наступний …
255 java  datetime  java-8 

13
Обчисліть дні між двома датами на Java 8
Я знаю, що існує багато запитань щодо SO, як отримати, але я хочу та приклади, використовуючи нові Java 8 Date api. Я також знаю бібліотеку JodaTime, але хочу працювати без зовнішніх бібліотек. Функція повинна скаржитися на такі обмеження: Запобігання помилкам із часу побачення Введення - це два об'єкти Date (без …

12
Видалення Java 8 JDK з Mac
Тому я деякий час тому встановив бета-версію JDK 8, щоб переглянути деякі приклади. Напевно я подумав, що змінити версії легко. Деякі розробки Play з IntelliJ. Чомусь IntelliJ збирає 8, хоча: У мене встановлений компілятор у Налаштуваннях для використання 1.6 Нібито він використовує SBT через зовнішню збірку, але sbt з командного …

4
Явно викликає метод Java за замовчуванням
Java 8 представляє методи за замовчуванням, щоб забезпечити можливість розширення інтерфейсів без необхідності змінювати існуючі реалізації. Цікаво, чи можна явно викликати реалізацію методу за замовчуванням, коли цей метод був замінений або недоступний через конфліктні реалізації за замовчуванням в різних інтерфейсах. interface A { default void foo() { System.out.println("A.foo"); } } …

3
Чому Iterable <T> не забезпечує потокові () та паралельніStream () методи?
Мені цікаво, чому Iterableінтерфейс не забезпечує stream()і parallelStream()методи. Розглянемо наступний клас: public class Hand implements Iterable&lt;Card&gt; { private final List&lt;Card&gt; list = new ArrayList&lt;&gt;(); private final int capacity; //... @Override public Iterator&lt;Card&gt; iterator() { return list.iterator(); } } Це реалізація Руки, оскільки ви можете мати картки в руці під час …

3
Лямбди Java 8, Function.identity () або t-> t
У цьому питанні є відповіді на Stack Overflow на російському : Лямбди в Java 8, що найкраще використовувати - Function.identity () або t-&gt; t? У мене є питання щодо використання Function.identity()методу. Уявіть собі наступний код: Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // &lt;- This, .map(str -&gt; str) // &lt;- is the …

12
Використання додатка Java 8 за допомогою Stream :: flatMap
Новий фреймворк Java 8 і його друзі створюють дуже короткий Java-код, але я натрапив на здавалося-просту ситуацію, яку складно робити стисло. Розглянемо а List&lt;Thing&gt; thingsта метод Optional&lt;Other&gt; resolve(Thing thing). Я хочу скласти карту Things до Optional&lt;Other&gt;s і отримати перше Other. Очевидним рішенням буде використання things.stream().flatMap(this::resolve).findFirst(), але flatMapвимагає повернути потік, і …

5
Чому потоки Java одноразові?
На відміну від C # 's IEnumerable, де конвеєр виконання може бути виконаний стільки разів, скільки ми хочемо, в Java потік можна "повторити" лише один раз. Будь-який дзвінок до операції терміналу закриває потік, роблячи його непридатним. Ця 'особливість' забирає багато сил. Я думаю, що причина цього не є технічною. Які …

4
Потоки Java 8: декілька фільтрів та складних умов
Іноді потрібно фільтрувати а Streamз кількома умовами: myList.stream().filter(x -&gt; x.size() &gt; 10).filter(x -&gt; x.isCool()) ... або ви могли б зробити те ж саме зі складною умовою та єдиним filter : myList.stream().filter(x -&gt; x.size() &gt; 10 &amp;&amp; x -&gt; x.isCool()) ... Я гадаю, що другий підхід має кращі експлуатаційні характеристики, але …

4
Навіщо використовувати Optional.of над Optional.ofNullable?
При використанні класу Java 8 Optionalє два способи, за допомогою яких значення можна загорнути в необов'язкове. String foobar = &lt;value or null&gt;; Optional.of(foobar); // May throw NullPointerException Optional.ofNullable(foobar); // Safe from NullPointerException Я розумію, Optional.ofNullableце єдиний безпечний спосіб використання Optional, але чому він взагалі Optional.ofіснує? Чому б просто не використовувати …

6
Усунення PermGen в JDK 8
Я встановив JDK 8 і намагаюся запустити Eclipse. Я отримую таке попередження: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0 Які причини ігнорування цієї опції VM?
229 java  java-8  jvm  permgen 

19
Фільтр потоку Java до 1 і лише 1 елемент
Я намагаюся використовувати Java 8 Streams, щоб знайти елементи в LinkedList. Хочу, однак, гарантувати, що є одна і одна відповідність критеріям фільтра. Візьміть цей код: public static void main(String[] args) { LinkedList&lt;User&gt; users = new LinkedList&lt;&gt;(); users.add(new User(1, "User1")); users.add(new User(2, "User2")); users.add(new User(3, "User3")); User match = users.stream().filter((user) -&gt; …

23
Помилка генерації клієнта WebService з JDK8
Мені потрібно споживати веб-сервіс у своєму проекті. Я використовую NetBeans, тому я клацнув правою кнопкою миші на своєму проекті і спробував додати нового "Клієнта веб-сервісу". Востаннє я перевіряв, це був спосіб створити клієнт веб-служби. Але це призвело до AssertionError, кажучи: java.lang.AssertionError: org.xml.sax.SAXParseException; systemId: jar: файл: /path/to/glassfish/modules/jaxb-osgi.jar! /com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd; рядокNumber: 52; колонкаНомера: …

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