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

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

7
Відформатуйте миттєве до рядка
Я намагаюсь відформатувати миттєвий рядок за допомогою нового Java-8 time-api та шаблону: Instant instant = ...; String out = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(instant); Використовуючи код вище, я отримую виняток, який скаржиться на непідтримуване поле: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: YearOfEra at java.time.Instant.getLong(Instant.java:608) at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298) ...

6
Як я можу створити Java 8 LocalDate за тривалий час в епохи за кілька мілісекунд?
У мене є зовнішній API, який повертає мені дати як longs, представлені у мілісекундах від початку Епохи. За допомогою старого стилю Java API, я просто побудую Dateз нього Date myDate = new Date(startDateLong) Який еквівалент у Java 8 LocalDate/ LocalDateTimeкласах? Мене цікавить перетворення моменту часу, представленого символом longa, LocalDateу моєму …

5
.Min () і .max () потоків Java 8: чому це компілюється?
Примітка: це запитання походить від мертвого посилання, яке було попереднім питанням SO, але тут іде ... Дивіться цей код ( зауважте: я знаю, що цей код не буде "працювати", і його Integer::compareслід використовувати - я просто витягнув його із пов'язаного питання ): final ArrayList <Integer> list = IntStream.rangeClosed(1, 20).boxed().collect(Collectors.toList()); System.out.println(list.stream().max(Integer::max).get()); …
215 java  java-8  java-stream 

10
Чому варто використовувати Objects.requireNonNull ()?
Я зазначив, що багато методів Java 8 в Oracle JDK використовують Objects.requireNonNull(), який внутрішньо передає, NullPointerExceptionякщо даний об'єкт (аргумент) є null. public static <T> T requireNonNull(T obj) { if (obj == null) throw new NullPointerException(); return obj; } Але NullPointerExceptionбуде кинуто в будь-якому випадку, якщо nullоб’єкт буде відмежований. Отже, чому …

2
Що є причиною того, що в інтерфейсах Java 8 синхронізовано не дозволено?
У Java 8 я можу легко написати: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Я отримаю повну семантику синхронізації, яку можу використовувати також у класах. Однак я не можу використовувати synchronizedмодифікатор …

9
Java8: HashMap <X, Y> в HashMap <X, Z>, використовуючи Stream / Map-Reduce / Collector
Я знаю, як "перетворити" просту Java Listз Y-&gt; Z, тобто: List&lt;String&gt; x; List&lt;Integer&gt; y = x.stream() .map(s -&gt; Integer.parseInt(s)) .collect(Collectors.toList()); Тепер я хотів би зробити те ж саме з картою, тобто: INPUT: { "key1" -&gt; "41", // "41" and "42" "key2" -&gt; "42 // are Strings } OUTPUT: { "key1" …

13
Використання Java 8 для перетворення списку об'єктів у рядок, отриманий методом toString ()
У Java 8. є багато корисних нових речей. Наприклад, я можу повторити потік над списком об'єктів, а потім підсумувати значення з певного поля Objectекземплярів. Напр public class AClass { private int value; public int getValue() { return value; } } Integer sum = list.stream().mapToInt(AClass::getValue).sum(); Таким чином, я запитую, чи є …

8
Різниця між `Optional.orElse ()` та `Optional.orElseGet ()`
Я намагаюся зрозуміти різницю між методами Optional&lt;T&gt;.orElse()та Optional&lt;T&gt;.orElseGet(). Опис orElse()методу - "Поверніть значення, якщо воно є, інакше поверніть інше". Тим не менш, опис orElseGet()методу - "Повернути значення, якщо воно є, інакше викликайте інше та поверніть результат цього виклику." orElseGet()Метод приймає функціональний інтерфейс постачальника, який по суті не приймає ніяких параметрів …
206 java  java-8  optional 

23
Java "лямбда-вирази, які не підтримуються на цьому мовному рівні"
Я тестував деякі нові можливості Java 8 і скопіював приклад у свій IDE (спочатку Eclipse, потім IntelliJ), як показано тут Eclipse не запропонував жодної підтримки для лямбда-виразів, і IntelliJ продовжував повідомляти про помилку Лямбда-вирази не підтримуються на цьому мовному рівні Я хотів би знати, чи це проблема з моєю установкою, …

2
Чому String.chars () є потоком вкладишів у Java 8?
У Java 8 є новий метод, String.chars()який повертає потік ints ( IntStream), що представляють коди символів. Я думаю, що багато людей очікують потоку chars замість цього. Якою була мотивація розробити API таким чином?
198 java  string  java-8 

4
Потік Java 8 та робота з масивами
Я щойно відкрив нові можливості потоку Java 8. Походячи з Python, мені було цікаво, чи не існує тепер акуратного способу робити операції над масивами, як підсумовування, множення двох масивів "пітонічним" одним рядком? Дякую

2
Різниця між спостережуваним майбутнім, майбутнім і спостережуваним RxJava
Я хотів би знати різницю між CompletableFuture, Futureі Observable RxJava. Що я знаю, це все асинхронно, але Future.get() блокує нитку CompletableFuture дає методи зворотного виклику RxJava Observable--- подібний до CompletableFutureінших переваг (не впевнений) Наприклад: якщо клієнту потрібно здійснити декілька сервісних дзвінків і коли ми використовуємо Futures(Java) Future.get()буде виконуватися послідовно ... …

8
Java 8 - Найкращий спосіб перетворення списку: карта чи передбачити?
У мене є список, myListToParseде я хочу відфільтрувати елементи і застосувати метод до кожного елемента, а результат додати в інший список myFinalList. З Java 8 я помітив, що я можу це зробити двома різними способами. Я хотів би знати більш ефективний шлях між ними та зрозуміти, чому один із способів …
188 java  java-8  java-stream 

9
Аргумент недійсності Java 8 lambda
Скажімо, у Java 8 є наступний функціональний інтерфейс: interface Action&lt;T, U&gt; { U execute(T t); } І в деяких випадках мені потрібна дія без аргументів або типу повернення. Тому я пишу щось подібне: Action&lt;Void, Void&gt; a = () -&gt; { System.out.println("Do nothing!"); }; Однак це дає мені помилку компіляції, мені …
188 java  lambda  java-8  void 

19
Обмежте потік присудком
Чи існує потокова операція Java 8, яка обмежує (потенційно нескінченну), Streamпоки перший елемент не зможе відповідати присудку? У Java 9 ми можемо використовувати, takeWhileяк у наведеному нижче прикладі, для друку всіх цифр менше 10. IntStream .iterate(1, n -&gt; n + 1) .takeWhile(n -&gt; n &lt; 10) .forEach(System.out::println); Оскільки в Java …
187 java  java-8  java-stream 

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