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.
I metodi predefiniti sono un bel nuovo strumento nella nostra casella degli strumenti Java. Tuttavia, ho provato a scrivere un'interfaccia che definisce una defaultversione del toStringmetodo. Java mi dice che questo è proibito, poiché i metodi dichiarati injava.lang.Object potrebbero non essere modificati default. Perché è così? So che esiste la …
Google Guava ha un predicato che ritorna sempretrue . Java 8 ha qualcosa di simile per i suoi Predicate? So che potrei usare (foo)->{return true;}, ma voglio qualcosa di pre-fatto, analogo a Collections.emptySet().
Ho una vecchia applicazione scritta usando Java 7. Funziona bene in un Java 8 JRE. Non intendo riscrivere alcun codice per utilizzare le funzionalità di Java 8. C'è qualche vantaggio tecnico nell'aggiornamento del codice compilato all'ultima JDK Java 8? Per essere chiari, il codice è attualmente compilato con Java 7 …
Ho un problema con il flusso di Java 8 foreach che tenta di passare all'elemento successivo in loop. Non riesco a impostare il comando come continue;, return;funziona solo ma in questo caso uscirai dal ciclo. Devo passare all'elemento successivo in loop. Come lo posso fare? Esempio (non funzionante): try(Stream<String> lines …
Perché lo fa ZonedDateTime now = ZonedDateTime.now(); System.out.println(now.withZoneSameInstant(ZoneOffset.UTC) .equals(now.withZoneSameInstant(ZoneId.of("UTC")))); stampare false? Mi aspetto che entrambi i ZonedDateTimecasi siano uguali.
Vorrei duplicare uno stream Java 8 in modo da poterlo gestire due volte. Posso collectcome elenco e ottenere nuovi flussi da quello; // doSomething() returns a stream List<A> thing = doSomething().collect(toList()); thing.stream()... // do stuff thing.stream()... // do other stuff Ma penso che dovrebbe esserci un modo più efficiente / …
Ho questo semplice codice: DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss.SSSSSS Z"); LocalDateTime.now().format(FORMATTER) Quindi otterrò la seguente eccezione: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: OffsetSeconds at java.time.LocalDate.get0(LocalDate.java:680) at java.time.LocalDate.getLong(LocalDate.java:659) at java.time.LocalDateTime.getLong(LocalDateTime.java:720) at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298) at java.time.format.DateTimeFormatterBuilder$OffsetIdPrinterParser.format(DateTimeFormatterBuilder.java:3315) at java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2182) at java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1745) at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1719) at java.time.LocalDateTime.format(LocalDateTime.java:1746) Come risolvere questo problema?
Come ottenere il primo elemento che corrisponde a un criterio in uno stream? L'ho provato ma non funziona this.stops.stream().filter(Stop s-> s.getStation().getName().equals(name)); Questo criterio non funziona, il metodo del filtro viene richiamato in una classe diversa da Stop. public class Train { private final String name; private final SortedSet<Stop> stops; public …
Le espressioni lambda hanno un uso diverso dal salvataggio di righe di codice? Ci sono funzioni speciali fornite da lambda che hanno risolto problemi che non erano facili da risolvere? L'utilizzo tipico che ho visto è che invece di scrivere questo: Comparator<Developer> byName = new Comparator<Developer>() { @Override public int …
Non riesco a capire la differenza tra thenApply() ethenCompose() . Quindi, qualcuno potrebbe fornire un caso d'uso valido? Dai documenti Java: thenApply(Function<? super T,? extends U> fn) Restituisce un nuovo CompletionStageche, quando questa fase si completa normalmente, viene eseguita con il risultato di questa fase come argomento della funzione fornita. …
Ho letto diversi tutorial su Java 8 prima. In questo momento ho riscontrato il seguente argomento: Java supporta il curry? Qui vedo il seguente codice: IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b; System.out.println(curriedAdd.apply(1).applyAsInt(12)); Capisco che questo esempio somma 2 elementi ma non riesco a capire la costruzione: …
Fino a Java 7 c'era un'area nella memoria JVM chiamata PermGen , dove JVM era solita mantenere le sue classi. In Java 8 è stato rimosso e sostituito da un'area chiamata Metaspace . Quali sono le differenze più importanti tra PermGen e Metaspace? L'unica differenza che so è che java.lang.OutOfMemoryError: …
Nello specifico, ho TabPane e vorrei sapere se contiene un elemento con un ID specifico. Quindi, vorrei farlo con l'espressione lambda in Java: boolean idExists = false; String idToCheck = "someId"; for (Tab t : tabPane.getTabs()){ if(t.getId().equals(idToCheck)) { idExists = true; } }
In molte altre lingue, ad es. Haskell, è facile ripetere un valore o una funzione più volte, ad es. per ottenere un elenco di 8 copie del valore 1: take 8 (repeat 1) ma non l'ho ancora trovato in Java 8. Esiste una funzione del genere nel JDK di Java …
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.