Hoy aprendí el nuevo uso de constructores, métodos estáticos y métodos en java8, y compartí el código fuente para que todos aprendan juntos. importar lombok.AllArgsConstructor; importar lombok.Constructor; importar lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor @Constructor Persona de clase pública { cadena privada nombre; cadena privada apellido; }
clase pública Algo { Cadena startWith(String s){ devuelve String.valueOf(s.charAt(0)); } }
@InterfazFuncional interfaz pública PersonFactory<P extiende Persona> { P create(String nombre,String apellido); }
@InterfazFuncional interfaz pública IConvert<F,T> { T convertir (F de); }
clase pública IConvertTest { /** * Referencias de métodos y constructores * Java 8 le permite pasar referencias a métodos y constructores a través de la palabra clave::. */ @Prueba public void staticMethodQuote(){ IConvert<String,Integer> convertidor = Integer::parseInt; int convertido = convertidor.convert("1233"); System.out.println(convertido); } @Prueba public void quoteObjectMethod(){ Algo algo = new Algo(); IConvert<String,String> convert =algo::empezarCon; convert.convert("abc"); } //constructor de referencia @Prueba public void quoteConstructorMethod() { // En lugar de usar las clases de fábrica implementadas manualmente, combine todo el trabajo usando constructores //Cree una referencia al constructor Person a través de Person::new. //El compilador de Java selecciona automáticamente el constructor correcto para que coincida con la firma de función de PersonFactory.create. PersonFactory<Persona> fábrica = Persona::nueva; Persona p = factory.create("zhuge", "xx"); Sistema.err.println(p); } }