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

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

9
Java 8: Форматування лямбда з новими рядками та відступами
Що я хотів би досягти за допомогою лямбда-відступу, це наступне: Багаторядна заява: String[] ppl = new String[] { "Karen (F)", "Kevin (M)", "Lee (M)", "Joan (F)", "Des (M)", "Rick (M)" }; List<String> strings = Arrays.stream(ppl) .filter( (x) -> { return x.contains("(M)"); } ).collect(Collectors.toList()); strings.stream().forEach(System.out::println); Однорядковий вираз: List<String> strings = Arrays.stream(ppl) …

10
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Недійсний тег байта в постійному пулі: 15
Я переношу веб-програму з Tomcat 7 на інший сервер з Tomcat 7, але з Java 8. Tomcat успішно запускається, але в журналі catalina.outя отримую: org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15 at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:131) at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:60) at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209) at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2049) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1931) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1899) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1885) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1281) …

12
Як виконати логіку на необов’язковому, якщо його немає?
Я хочу замінити наступний код за допомогою java8 Optional: public Obj getObjectFromDB() { Obj obj = dao.find(); if (obj != null) { obj.setAvailable(true); } else { logger.fatal("Object not available"); } return obj; } Наступний псевдокод не працює, оскільки немає orElseRunметоду, але в будь-якому випадку він ілюструє мою мету: public Optional<Obj> …
83 java  java-8  optional 

2
Скільки потоків породжується паралельним потоком у Java 8?
У JDK8, скільки потоків породжується, коли я використовую паралельний потік? Наприклад, у коді: list.parallelStream().forEach(/** Do Something */); Якщо цей список містить 100000 елементів, скільки потоків буде породжено? Крім того, чи отримує кожна з ниток однакову кількість предметів для роботи, чи вона виділяється випадковим чином?

5
Як я можу зібрати потік Java 8 у Guava ImmutableCollection?
Я хотів би зробити наступне: List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); але таким чином, що отриманий список є реалізацією Гуави ImmutableList. Я знаю, що міг би це зробити List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); List<Integer> immutableList = ImmutableList.copyOf(list); але я хотів би зібрати до нього безпосередньо. Я пробував List<Integer> list = IntStream.range(0, …

5
Максимальний розмір методу в Java 7 і 8
Я знаю, що метод не може перевищувати 64 КБ з Java. Обмеження викликає проблеми з генерованим кодом із граматики JavaCC . У нас були проблеми з Java 6, і ми змогли це виправити, змінивши граматику. Чи було змінено обмеження для Java 7 чи воно планується для Java 8? Тільки щоб …
82 java  java-7  java-8 

6
forEach цикл Java 8 для набору введення карти
Я намагаюся перетворити старий звичайний для кожного циклу до java7 в java8 для кожного циклу для набору введення карти, але я отримую помилку. Ось код, який я намагаюся конвертувати: for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue()); } Ось …
82 java  lambda  java-8 

5
Як використовувати ціле число без підпису в Java 8 та Java 9?
У Oracle «Примітивні типи даних» сторінки , він згадує , що Java 8 додана підтримка для беззнакових цілих чисел і довгих позицій: int: За замовчуванням intтип даних - це 32-розрядне ціле доповнення, підписане двома, яке має мінімальне значення −2 31 та максимальне значення 2 31 −1. У Java SE 8 …
82 java  java-8  unsigned 

6
Java8: сума значень з конкретного поля об'єктів у списку
Припустимо, мати клас Obj class Obj{ int field; } і що у вас є список Objекземплярів, тобто List<Obj> lst. Тепер, як я можу знайти в Java8 з потоками суму значень полів int fieldіз об’єктів у списку lstза критерієм фільтрації (наприклад, для об’єкта o, критерієм є o.field > 10)?

8
Постачальник Java 8 з аргументами в конструкторі
Чому постачальники підтримують лише конструктори без аргументів? Якщо присутній конструктор за замовчуванням, я можу зробити це: create(Foo::new) Але якщо єдиний конструктор бере рядок, я повинен зробити це: create(() -> new Foo("hello"))

1
Порівнювач нульових параметрів зіставлення за допомогою стандартних реалізацій
Чи існує вбудована можливість створити нульовий безпечний порівняльник зіставлення в Java 8 без написання власної реалізації Comparator? При запуску наступного коду він викликає NPE, оскільки keyExtractorаргумент Comparator.comparing()може повертати nullзначення: public class ToSort { private String sortBy; public ToSort(String sortBy) { this.sortBy = sortBy; } public String getSortBy() { return sortBy; …

3
Чи є кешування посилань на методи хорошою ідеєю в Java 8?
Подумайте, у мене є такий код: class Foo { Y func(X x) {...} void doSomethingWithAFunc(Function<X,Y> f){...} void hotFunction(){ doSomethingWithAFunc(this::func); } } Припустимо, що hotFunctionце називається дуже часто. Чи було б тоді доцільним кешувати this::func, можливо так: class Foo { Function<X,Y> f = this::func; ... void hotFunction(){ doSomethingWithAFunc(f); } } Наскільки …


4
Java 8: об'єднання списків з потоковим API
У мене така ситуація Map<Key, ListContainer> map; public class ListContainer{ List<AClass> lst; } Я повинен об’єднати всі списки lstз ListContainerоб’єктів на Mapкарті. public static void main(String args[]){ List<AClass> alltheObjectsAClass = map.values().stream(). // continue.... } Будь-яка ідея, як, використовуючи Java 8 потік API?

3
Перевірте примірник потоку
Я маю такий вираз: scheduleIntervalContainers.stream() .filter(sic -> ((ScheduleIntervalContainer) sic).getStartTime() != ((ScheduleIntervalContainer)sic).getEndTime()) .collect(Collectors.toList()); ... де scheduleIntervalContainersмає тип елемента ScheduleContainer: final List<ScheduleContainer> scheduleIntervalContainers Чи можна перевірити тип перед фільтром?

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