Articles of java 8

Perché la massima profondità di ricorsione posso raggiungere non deterministica?

Ho deciso di provare alcuni esperimenti per vedere cosa avrei potuto scoprire sulla dimensione dei frame dello stack e quanto lontano fosse lo stack del codice attualmente in esecuzione. Ci sono due domande interessanti che potremmo investigare qui: Quanti livelli in profondità nella pila è il codice corrente? Quanti livelli di ricorsione può raggiungere il […]

Qual è la ripartizione per la syntax lambda di Java?

Si prega di spiegare la syntax per i metodi lambda di Java 8. Ci sono molte spiegazioni là fuori per le funzioni lambda, ma non riesco a trovare una spiegazione approfondita della syntax, e trovo molto difficile imparare a replicare correttamente la syntax perché non capisco perché loro ” re scritto così come sono. Ecco […]

Eccezione non gestita di riferimento metodo Java 8

Sto lavorando al progetto con Java 8 e ho trovato una situazione che non riesco a capire. Ho un codice come questo: void deleteEntity(Node node) throws SomeException { for (ChildNode child: node.getChildren()) { deleteChild(child); } } void deleteChild(Object child) throws SomeException { //some code } Questo codice funziona correttamente, ma posso riscriverlo con un riferimento […]

Java 8 stream in ordine inverso

Domanda generale: qual è il modo corretto per invertire un stream? Supponendo che non sappiamo quale tipo di elementi è costituito da tale stream, qual è il modo generico per invertire qualsiasi stream? Domanda specifica: IntStream fornisce il metodo range per generare IntStream.range(-range, 0) interi nell’intervallo specifico IntStream.range(-range, 0) , ora che voglio invertirlo, l’intervallo […]

Java8: ambiguità con lambda e metodi sovraccaricati

Sto giocando con java8 lambda e mi sono imbattuto in un errore del compilatore che non mi aspettavo. Diciamo che ho un’interfaccia funzionale interface A , una abstract class B e una class C con metodi sovraccaricati che accettano A o B come argomenti: public interface A { void invoke(String arg); } public abstract class […]

Java 8: gestione delle eccezioni controllate obbligatorie nelle espressioni lambda. Perché obbligatorio, non opzionale?

Sto giocando con le nuove funzionalità di lambda in Java 8 e ho scoperto che le pratiche offerte da Java 8 sono davvero utili. Tuttavia, mi chiedo c’è un buon modo per aggirare il problema per il seguente scenario. Supponiamo di avere un involucro del pool di oggetti che richiede una sorta di factory per […]

Quali sono le differenze tra classi astratte e interfacce in Java 8?

In Java c’era una sottile ma importante differenza tra classi astratte e interfacce: implementazioni predefinite . Le classi astratte potevano averli, le interfacce non potevano. Java 8 introduce però implementazioni predefinite per interfacce, il che significa che questa non è più la differenza critica tra un’interfaccia e una class astratta. Quindi cos’è? Per quanto ne […]

Come convertire un iteratore in un stream?

Sto cercando un modo conciso per convertire un Iterator in un Stream o più specificamente per “visualizzare” l’iteratore come un stream. Per motivi di prestazioni, vorrei evitare una copia dell’iteratore in una nuova lista: Iterator sourceIterator = Arrays.asList(“A”, “B”, “C”).iterator(); Collection copyList = new ArrayList(); sourceIterator.forEachRemaining(copyList::add); Stream targetStream = copyList.stream(); Sulla base di alcuni suggerimenti […]

Qual è la differenza tra Collection.stream (). ForEach () e Collection.forEach ()?

Capisco che con .stream() , posso usare le operazioni a catena come .filter() o usare il stream parallelo. Ma che differenza c’è tra loro se ho bisogno di eseguire piccole operazioni (ad esempio, stampando gli elementi della lista)? collection.stream().forEach(System.out::println); collection.forEach(System.out::println);

Rimozione di Java 8 JDK da Mac

Così ho installato la beta di JDK 8 qualche tempo fa per guardare alcuni degli esempi. Ormai pensavo di sicuro, è facile cambiare tra le versioni. Fare dello sviluppo di giochi con IntelliJ. Per qualche motivo, IntelliJ sta compilando con 8 anche se: Ho il compilatore impostato in Preferenze per usare 1.6 Presumibilmente sta usando […]