Articles of java 8

Perché l’inferenza di tipo generico di Java 8 sceglie questo sovraccarico?

Considera il seguente programma: public class GenericTypeInference { public static void main(String[] args) { print(new SillyGenericWrapper().get()); } private static void print(Object object) { System.out.println(“Object”); } private static void print(String string) { System.out.println(“String”); } public static class SillyGenericWrapper { public T get() { return null; } } } Stampa “String” sotto Java 8 e “Object” sotto […]

Converti tra LocalDate e sql.Date

Qual è il modo corretto di convertire tra java.sql.Date e LocalDate (Java8)?

La chiamata ricorsiva ConcurrentHashMap.computeIfAbsent () non termina mai. Bug o “funzionalità”?

Qualche tempo fa, ho scritto un blog su un modo funzionale di Java 8 per calcolare i numeri di Fibonacci in modo ricorsivo , con una cache ConcurrentHashMap e il nuovo, utile metodo computeIfAbsent() : import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class Test { static Map cache = new ConcurrentHashMap(); public static void main(String[] args) { […]

installazione di JDK8 su Windows XP – errore advapi32.dll

Ho scaricato JDK8 build b121 e mentre provavo ad installare ricevo il seguente errore: Imansible trovare il punto di ingresso della procedura RegDeleteKeyExA nella libreria di collegamento dinamico ADVAPI32.dll Il sistema operativo è Windows XP, Versione 2002 Service Pack 3, 32 bit.

Splitting List in sottolisti lungo gli elementi

Ho questo elenco ( List ): [“a”, “b”, null, “c”, null, “d”, “e”] E vorrei qualcosa del genere: [[“a”, “b”], [“c”], [“d”, “e”]] In altre parole, voglio dividere la mia lista in sottoliste usando il valore null come separatore, per ottenere un elenco di liste ( List<List> ). Sto cercando una soluzione Java 8. Ho […]

Aggiunta di BigDecimals usando gli Stream

Ho una collezione di BigDecimals (in questo esempio, una LinkedList ) che vorrei aggiungere insieme. È ansible utilizzare gli stream per questo? Ho notato che la class Stream ha diversi metodi Stream::mapToInt Stream::mapToDouble Stream::mapToLong Ognuno di questi ha un metodo di sum() conveniente. Ma, come sappiamo, float e double aritmetica è quasi sempre una ctriggers […]

Una caratteristica peculiare dell’inferenza di tipo eccezione in Java 8

Mentre scrivevo il codice per un’altra risposta su questo sito mi sono imbattuto in questa peculiarità: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings(“unchecked”) static void sneakyThrow(Throwable t) throws T { throw (T) t; } static void nonSneakyThrow(T t) throws T { […]

Filtra Java Stream su 1 e solo 1 elemento

Sto cercando di utilizzare Java 8 Stream s per trovare elementi in una LinkedList . Voglio garantire, tuttavia, che esiste una sola corrispondenza per i criteri di filtro. Prendi questo codice: public static void main(String[] args) { LinkedList users = new LinkedList(); users.add(new User(1, “User1”)); users.add(new User(2, “User2”)); users.add(new User(3, “User3”)); User match = users.stream().filter((user) […]

Come sumre una lista di interi con flussi java?

Voglio sumre una lista di interi. Funziona come segue, ma la syntax non sembra giusta. Il codice potrebbe essere ottimizzato? Map integers; integers.values().stream().mapToInt(i -> i).sum();

LocalDate su java.util.Date e viceversa, la conversione più semplice?

Esiste un modo semplice per convertire un LocalDate (introdotto con Java 8) nell’object java.util.Date ? Per “semplice”, intendo più semplice di questo: Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); che mi sembra un po ‘imbarazzante. Dato che siamo interessati solo alla parte della data e non ci sono informazioni sul fuso orario in nessuno degli oggetti, perché introdurre […]