Utilizzare questo tag per domande specifiche su Java 8 che è la versione 8 (numero interno 1.8) della piattaforma Java, rilasciata il 18 marzo 2014. Nella maggior parte dei casi, è necessario specificare anche il tag java.
Come posso ottenere l'ultimo elemento di uno stream o di un elenco nel codice seguente? Dov'è data.careasun List<CArea>: CArea first = data.careas.stream() .filter(c -> c.bbox.orientationHorizontal).findFirst().get(); CArea last = data.careas.stream() .filter(c -> c.bbox.orientationHorizontal) .collect(Collectors.toList()).; //how to? Come puoi vedere ottenere il primo elemento, con un certo filter, non è difficile. Tuttavia, …
Stavo giocando con la nuova API data e ora ma durante l'esecuzione: public class Test { public static void main(String[] args){ String dateFormatted = LocalDate.now() .format(DateTimeFormatter .ofPattern("yyyy-MM-dd HH:mm:ss")); System.out.println(dateFormatted); } } Lancia: Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay at java.time.LocalDate.get0(LocalDate.java:680) at java.time.LocalDate.getLong(LocalDate.java:659) at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298) at java.time.format.DateTimeFormatterBuilder$NumberPrinterParser.format(DateTimeFormatterBuilder.java:2543) at java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2182) …
È una pratica sicura utilizzare i metodi predefiniti come versione umana dei tratti in Java 8? Alcuni sostengono che potrebbe rendere i panda tristi se li usi solo per il gusto di farlo, perché è bello, ma non è mia intenzione. Spesso viene anche ricordato che i metodi predefiniti sono …
Vorrei davvero usare Map.computeIfAbsent ma è passato troppo tempo da quando lambda in undergrad. Quasi direttamente dalla documentazione: fornisce un esempio del vecchio modo di fare le cose: Map<String, Boolean> whoLetDogsOut = new ConcurrentHashMap<>(); String key = "snoop"; if (whoLetDogsOut.get(key) == null) { Boolean isLetOut = tryToLetOut(key); if (isLetOut != …
La modifica di una variabile locale in forEachdà un errore di compilazione: Normale int ordinal = 0; for (Example s : list) { s.setOrdinal(ordinal); ordinal++; } Con Lambda int ordinal = 0; list.forEach(s -> { s.setOrdinal(ordinal); ordinal++; }); Qualche idea su come risolvere questo problema?
Nel nostro progetto stiamo migrando a java 8 e ne stiamo testando le nuove funzionalità. Nel mio progetto sto usando predicati e funzioni Guava per filtrare e trasformare alcune raccolte usando Collections2.transforme Collections2.filter. In questa migrazione ho bisogno di cambiare ad esempio il codice guava in Java 8 modifiche. Quindi, …
Chiuso . Questa domanda è basata sull'opinione . Attualmente non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che possa essere risolta con fatti e citazioni modificando questo post . Chiuso 6 anni fa . Migliora questa domanda IntelliJ continua a propormi di sostituire le mie espressioni …
Recentemente sto leggendo il codice sorgente di Spring Framework. Qualcosa che non riesco a capire va qui: public Member getMember() { // NOTE: no ternary expression to retain JDK <8 compatibility even when using // the JDK 8 compiler (potentially selecting java.lang.reflect.Executable // as common type, with that new base …
Vedo java.util.function.BiFunction, quindi posso farlo: BiFunction<Integer, Integer, Integer> f = (x, y) -> { return 0; }; E se non fosse abbastanza buono e avessi bisogno di TriFunction? Non esiste! TriFunction<Integer, Integer, Integer, Integer> f = (x, y, z) -> { return 0; }; Immagino di dover aggiungere che so …
Ho un piccolo problema con la formattazione di un LocalDateTime di Java 8 nella mia applicazione Spring Boot. Con le date 'normali' non ho problemi, ma i campi LocalDateTime vengono convertiti nel seguente: "startDate" : { "year" : 2010, "month" : "JANUARY", "dayOfMonth" : 1, "dayOfWeek" : "FRIDAY", "dayOfYear" : …
Poiché Java 8 è dotato di potenti espressioni lambda, Vorrei scrivere una funzione per convertire un elenco / array di stringhe in array / elenco di numeri interi, float, doppi ecc. In Java normale, sarebbe semplice come for(String str : strList){ intList.add(Integer.valueOf(str)); } Ma come posso ottenere lo stesso risultato …
Ho un elenco con alcuni oggetti utente e sto cercando di ordinare l'elenco, ma funziona solo usando il riferimento al metodo, con l'espressione lambda il compilatore dà un errore: List<User> userList = Arrays.asList(u1, u2, u3); userList.sort(Comparator.comparing(u -> u.getName())); // works userList.sort(Comparator.comparing(User::getName).reversed()); // works userList.sort(Comparator.comparing(u -> u.getName()).reversed()); // Compiler error Errore: …
Dato che Java8 è stato recentemente rilasciato e le sue nuovissime espressioni lambda sembrano davvero interessanti, mi chiedevo se questo significasse la fine delle classi Anonymous a cui eravamo così abituati. Ho cercato un po 'su questo e ho trovato alcuni esempi interessanti su come le espressioni Lambda sostituiranno sistematicamente …
Supponiamo che io abbia un'interfaccia generica: interface MyComparable<T extends Comparable<T>> { public int compare(T obj1, T obj2); } E un metodo sort: public static <T extends Comparable<T>> void sort(List<T> list, MyComparable<T> comp) { // sort the list } Posso invocare questo metodo e passare un'espressione lambda come argomento: List<String> list …
Prima di Java 8, quando dividiamo su una stringa vuota come String[] tokens = "abc".split(""); il meccanismo di divisione si dividerebbe nei punti contrassegnati con | |a|b|c| perché lo spazio vuoto ""esiste prima e dopo ogni carattere. Quindi come risultato genererebbe inizialmente questo array ["", "a", "b", "c", ""] e …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.