Domande taggate «java8»

Java 8 si riferisce alla versione più recente della piattaforma Java.

10
Perché utilizzare Opzionale in Java 8+ anziché i tradizionali controlli puntatore null?
Di recente ci siamo trasferiti su Java 8. Ora vedo le applicazioni inondate di Optionaloggetti. Prima di Java 8 (stile 1) Employee employee = employeeServive.getEmployee(); if(employee!=null){ System.out.println(employee.getId()); } Dopo Java 8 (stile 2) Optional<Employee> employeeOptional = Optional.ofNullable(employeeService.getEmployee()); if(employeeOptional.isPresent()){ Employee employee = employeeOptional.get(); System.out.println(employee.getId()); } Non vedo alcun valore aggiunto di …
110 java  java8 

5
Perché sono stati aggiunti metodi predefiniti e statici alle interfacce in Java 8 quando avevamo già classi astratte?
In Java 8, le interfacce possono contenere metodi implementati, metodi statici e metodi cosiddetti "predefiniti" (che le classi di implementazione non hanno bisogno di sovrascrivere). Dal mio punto di vista (probabilmente ingenuo), non era necessario violare interfacce come questa. Le interfacce sono sempre state un contratto che devi rispettare e …


3
Perché alle classi java.time di Java 8 manca un metodo getMillis ()?
Java 8 ha una libreria completamente nuova per le date e gli orari nel pacchetto java.time, il che è molto gradito a chiunque abbia dovuto usare JodaTime prima o seccarsi nel creare i propri metodi di supporto per l'elaborazione delle date. Molte classi in questo pacchetto rappresentano timestamp e hanno …
64 java  java8 


6
Soluzione alternativa per Java verificate eccezioni
Apprezzo molto le nuove funzionalità di Java 8 su lambdas e le interfacce dei metodi predefiniti. Tuttavia, mi annoio ancora con le eccezioni verificate. Ad esempio, se voglio solo elencare tutti i campi visibili di un oggetto, vorrei semplicemente scrivere questo: Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); Tuttavia, poiché il getmetodo …


3
È un antipattern usare peek () per modificare un elemento stream?
Supponiamo di avere un flusso di cose e che voglio "arricchirle" a metà flusso, che posso usare peek()per fare questo, ad esempio: streamOfThings.peek(this::thingMutator).forEach(this::someConsumer); Supponiamo che la mutazione delle cose a questo punto nel codice sia un comportamento corretto - ad esempio, il thingMutatormetodo può impostare il campo "lastProcessed" sull'ora corrente. …

1
Digitare l'inferenza in Java 8
L'introduzione della nuova notazione lambda (vedi ad esempio questo articolo ) in Java 8 richiederà qualche tipo di deduzione di tipo? In tal caso, in che modo il nuovo sistema di tipi avrà un impatto sul linguaggio Java nel suo insieme?


3
Perché Optional.get () senza chiamare isPresent () è cattivo, ma non iterator.next ()?
Quando si utilizzano le nuove API Java8 stream per trovare un elemento specifico in una raccolta, scrivo codice in questo modo: String theFirstString = myCollection.stream() .findFirst() .get(); Qui IntelliJ avverte che get () viene chiamato senza prima controllare isPresent (). Tuttavia, questo codice: String theFirstString = myCollection.iterator().next(); ... non dà …
23 java8 


3
È una cosa ragionevole restituire stream ovunque dovremmo normalmente restituire le raccolte?
Mentre sviluppo la mia API che non è legata ad alcun codice legacy, mi trovo spesso a scrivere metodi che sono puramente flussi di pipeline terminati raccogliendo i risultati. Come questo: ImmutableSet<T> deriveSomethingMeaningfulFromPrivateState() { return myPrivateThingies.stream() .map(this::ownerOfThing) .map(Owner::socialStatus) .filter(SocialStatus::isHeAFineMatey) .collect(MyCustomCollectors.toImmutableSet()); } Ora, la maggior parte dei client di questa classe …



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.