Articles of java 8

¿Por qué la inferencia de tipo genérico Java 8 elige esta sobrecarga?

Considere el siguiente progtwig: 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; } } } Imprime “Cadena” en Java 8 y “Objeto” en […]

Convertir entre LocalDate y sql.Date

¿Cuál es la forma correcta de convertir entre java.sql.Date y LocalDate (Java8)?

División de lista en sublistas a lo largo de los elementos

Tengo esta lista ( List ): [“a”, “b”, null, “c”, null, “d”, “e”] Y me gustaría algo como esto: [[“a”, “b”], [“c”], [“d”, “e”]] En otras palabras, quiero dividir mi lista en sublistas usando el valor null como separador, para obtener una lista de listas ( List<List> ). Estoy buscando una solución Java 8. Lo […]

Por qué java.util.Optional no es Serializable, cómo serializar el objeto con dichos campos

La clase Enum es Serializable, por lo que no hay problema para serializar objetos con enumeraciones. El otro caso es donde la clase tiene campos de clase java.util.Optional. En este caso, se lanza la siguiente excepción: java.io.NotSerializableException: java.util.Optional ¿Cómo lidiar con tales clases, cómo serializarlas? ¿Es posible enviar tales objetos a EJB remoto oa través […]

Una característica peculiar de la inferencia de tipo de excepción en Java 8

Al escribir el código para otra respuesta en este sitio me encontré con esta peculiaridad: 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 { throw […]

instalar JDK8 en Windows XP – error advapi32.dll

Descargué la versión b121 de JDK8 y al intentar instalar recibo el siguiente error: el punto de entrada del procedimiento RegDeleteKeyExA no se pudo ubicar en la biblioteca de vínculos dynamics ADVAPI32.dll El sistema operativo es Windows XP, Versión 2002 Service Pack 3, 32 bits.

Opcional orElse Opcional en Java

He estado trabajando con el nuevo tipo opcional en Java 8 , y he encontrado lo que parece una operación común que no es compatible funcionalmente: un “orElseOptional” Considere el siguiente patrón: Optional resultFromServiceA = serviceA(args); if (resultFromServiceA.isPresent) return result; else { Optional resultFromServiceB = serviceB(args); if (resultFromServiceB.isPresent) return resultFromServiceB; else return serviceC(args); } Hay […]

¿LocalDate a java.util.Date y viceversa la conversión más simple?

¿Existe alguna forma sencilla de convertir un LocalDate (introducido con Java 8) en el objeto java.util.Date ? Por ‘simple’, quiero decir más simple que esto: Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); lo cual me parece un poco incomodo Como solo nos interesa la parte de la fecha y no hay información de zona horaria en ninguno de […]

Agregando BigDecimales usando Streams

Tengo una colección de BigDecimals (en este ejemplo, una LinkedList ) que me gustaría agregar juntos. ¿Es posible usar transmisiones para esto? Noté que la clase Stream tiene varios métodos Stream::mapToInt Stream::mapToDouble Stream::mapToLong Cada uno de los cuales tiene un método conveniente de sum() . Pero, como sabemos, la aritmética float y double casi siempre […]

¿Cómo sumr una lista de enteros con flujos de Java?

Quiero sumr una lista de enteros. Funciona de la siguiente manera, pero la syntax no se siente bien. ¿Podría optimizarse el código? Map integers; integers.values().stream().mapToInt(i -> i).sum();