Preguntas etiquetadas con java8

Java 8 se refiere a la versión más reciente de la plataforma Java.

10
¿Por qué usar Opcional en Java 8+ en lugar de las comprobaciones de puntero nulo tradicionales?
Recientemente nos hemos mudado a Java 8. Ahora, veo aplicaciones inundadas de Optionalobjetos. Antes de Java 8 (Estilo 1) Employee employee = employeeServive.getEmployee(); if(employee!=null){ System.out.println(employee.getId()); } Después de Java 8 (Estilo 2) Optional<Employee> employeeOptional = Optional.ofNullable(employeeService.getEmployee()); if(employeeOptional.isPresent()){ Employee employee = employeeOptional.get(); System.out.println(employee.getId()); } No veo ningún valor agregado de Optional<Employee> …
110 java  java8 

5
¿Por qué se agregaron métodos predeterminados y estáticos a las interfaces en Java 8 cuando ya teníamos clases abstractas?
En Java 8, las interfaces pueden contener métodos implementados, métodos estáticos y los llamados métodos "predeterminados" (que las clases de implementación no necesitan anular). En mi opinión (probablemente ingenua), no había necesidad de violar interfaces como esta. Las interfaces siempre han sido un contrato que debe cumplir, y este es …


3
¿Por qué las clases Java 8 java.time no tienen un método getMillis ()?
Java 8 tiene una biblioteca completamente nueva para fechas y horas en el paquete java.time, lo cual es muy bienvenido para cualquiera que haya tenido que usar JodaTime antes o que tenga problemas para crear sus propios métodos auxiliares de procesamiento de fechas. Muchas clases en este paquete representan marcas …
64 java  java8 


6
Solución para las excepciones comprobadas de Java
Aprecio mucho las nuevas características de Java 8 sobre lambdas e interfaces de métodos predeterminados. Sin embargo, todavía me aburro con las excepciones marcadas. Por ejemplo, si solo quiero enumerar todos los campos visibles de un objeto, me gustaría simplemente escribir esto: Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); Sin embargo, dado …


3
¿Es un antipatrón usar peek () para modificar un elemento de flujo?
Supongamos que tengo una secuencia de Cosas y quiero "enriquecerlas" a mitad de la secuencia, puedo usar peek()para hacer esto, por ejemplo: streamOfThings.peek(this::thingMutator).forEach(this::someConsumer); Suponga que mutar las cosas en este punto del código es un comportamiento correcto; por ejemplo, el thingMutatormétodo puede establecer el campo "lastProcessed" en la hora actual. …

1
Inferencia de tipos en Java 8
¿La introducción de la nueva notación lambda (ver, por ejemplo, este artículo ) en Java 8 va a requerir algún tipo de inferencia de tipos? Si es así, ¿cómo afectará el nuevo sistema de tipos al lenguaje Java en su conjunto?


3
¿Por qué es Optional.get () sin llamar a isPresent () malo, pero no iterator.next ()?
Cuando uso la nueva API de secuencias Java8 para encontrar un elemento específico en una colección, escribo código como este: String theFirstString = myCollection.stream() .findFirst() .get(); Aquí IntelliJ advierte que se llama a get () sin verificar primero isPresent (). Sin embargo, este código: String theFirstString = myCollection.iterator().next(); ... no …
23 java8 


3
¿Es sensato devolver Streams donde normalmente devolvemos Colecciones?
Mientras desarrollo mi API que no está vinculada a ningún código heredado, a menudo me encuentro escribiendo métodos que son puramente canales terminados mediante la recopilación de los resultados. Como éste: ImmutableSet<T> deriveSomethingMeaningfulFromPrivateState() { return myPrivateThingies.stream() .map(this::ownerOfThing) .map(Owner::socialStatus) .filter(SocialStatus::isHeAFineMatey) .collect(MyCustomCollectors.toImmutableSet()); } Ahora, la mayoría de los clientes de esta clase …


1
¿Collection.stream (). Filter (). ForEach () es ineficiente en comparación con un estándar para cada bucle?
IntelliJ IDEA me recomendó en este momento reemplazar el siguiente ciclo for-each con una llamada Java 8 "forEach": for (Object o : objects) { if (o instanceof SomeObject) { doSomething(); } } La llamada recomendada quisiera así: objects.stream().filter(o -> o instanceof SomeObject).forEach(o -> doSomething()); A menos que no entienda cómo …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.