Referencia de método de nueva característica Java 8
Para las referencias, generalmente los usamos en objetos, y la característica de la referencia de objetos es que diferentes objetos de referencia pueden operar con la misma pieza de contenido.
La referencia del método Java 8 define cuatro formatos:
Ejemplo de referencia del método estático
/*** Referencia del método estático* @param <p> Tipo de parámetro de método de referencia* @param <r> Tipo de retorno de método de referencia* / @funcionalInterfaceInterface FunstaticRef <p, r> {public r trantest (p);} public static void main (string [] args) { /** Referencia de método estático: Valor de cadena estatica publicitaria* Es decir, el valor de Value de () Método de cadena es como se hace un método de cadena. FunstaticRef#Trantest Method*/ FunstaticRef <Integer, String> FunstaticRef = String :: ValueOf; Cadena str = funstaticref.trantest (10000); System.out.println (str.replaceall ("0", "9"));}
Ejemplo de referencia del método de objeto
/*** Referencia de método normal* @param <r> Tipo de retorno del método de referencia*/ @funcionalinterfaceInterface Instanref <r> {public r upperCase ();} public static void main (string [] args) {/** Referencia de métodos ordinarios: public String toUupperCase ()**/String Str2 = "I Ve You"; Instanref <String> instanref = str2 :: toUpperCase; System.out.println (instanref.upperCase ());} Ejemplo de una referencia de método de tipo específico
La cita de un método específico es difícil de entender. Se refiere a métodos ordinarios, pero el método de referencia es: ClassName :: MethodName
/** * referencia a métodos específicos * @param <p> * / @funcionalInterfaceInterface especificMethodref <p> {public int Compare (p p1, p p p2);} public static void void main (string [] args) { / * * referencia a métodos públicos int -intangoeTo (string eotherstring) * en los parámetros! */ EspecificMethodref <String> especificMethodref = String :: Compareto; System.out.println (especificMethodref.compare ("a", "b")); ConstructorRef <Book> constructorRef = book :: new; Libro Libro = constructorRef.CreateObject ("Java", 100.25); System.out.println (libro);}Ejemplo de referencia de constructor
Libro de clase {título de cadena privada; precio doble privado; libro público () {} Public Book (título de cadena, precio doble) {this.price = precio; this.title = title; } @Override public string toString () {return "book {" + "title = '" + title +'/'' + ", precio =" + precio + '}'; }} public static void main (string [] args) { / * * constructorRef <Book> constructorRef = book :: new; Libro Libro = constructorRef.CreateObject ("Java", 100.25); System.out.println (libro);}En general, algunas características nuevas de Java 8 no se han utilizado en los proyectos actualmente en uso, pero después de aprender, no verá el código de estas nuevas características de Java 8 y ¡no sabe qué está mal!
Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!