Java 8 Новая ссылка на метод функции
Для ссылок мы обычно используем их на объектах, и характеристика ссылки на объект заключается в том, что различные эталонные объекты могут работать на одном и том же куске контента!
Ссылка на метод Java 8 определяет четыре формата:
Справочный пример статического метода
/*** Справочник по статическому методу* @param <p> Тип параметра типа эталонного метода* @param <r> return type reference method* / @functionalinterfaceinter funstaticref <p, r> {public r trantest (p p);} public static void main (string [] args) { /* Ссылка на статический метод: public static stric FunstaticRef#Trantest Метод*/ funstaticRef <integer, string> funstaticref = string :: valueof; String str = funstaticref.trantest (10000); System.out.println (str.replaceall ("0", "9"));}
Справочный пример метода объекта
/*** Справочник по нормальному методу* @param <r> Справочный метод возвращается тип*/ @functionalinterfaceInterface InstanRef <R> {public r uppercase ();} public static void main (string [] args) {/** Справочник обычных методов: public String toupperCase ()**/String str2 = "Is You"; InstanRef <string> instanRef = str2 :: touppercase; System.out.println (instanref.uppercase ());} Пример ссылки на метод конкретного типа
Цитата конкретного метода трудно понять. Это относится к обычным методам, но справочный метод: classname :: methodname
/** * Ссылка на конкретные методы * @param <p> * / @functionAlInterfaceInterface SpecialMethodRef <p> {public int compare (p p1, p p2);} public static void main (string [] args) { / * * Ссылка на конкретные методы Public int Compareto (String anotherstring) * По сравнению с предыдущим методом, объект, который может быть определяется, чтобы определить, но и все, что может быть определяется, но и для того, чтобы определить, что это может быть определяет, но это может быть определяется, но и для того, чтобы определить, что может быть определяется, но для определения, но и для определения, но объект. На параметрах! */ Specialmethodref <string> specialmethodref = string :: compareto; System.out.println (SpecialMethodref.compare ("a", "b")); ConstructorRef <Book> constructorRef = book :: new; Book Book = constructorRef.createObject ("java", 100.25); System.out.println (book);}Пример ссылки на конструктор
Класс книга {частная строка название; частная двойная цена; public book () {} public book (название строки, двойная цена) {this.price = price; this.title = заголовок; } @Override public String toString () {return "book {" + "title = '" + title +'/'' + ", price =" + price + '}'; }} public static void main (string [] args) { / * * constructorRef <book> constructorRef = book :: new; Book Book = constructorRef.createObject ("java", 100.25); System.out.println (book);}В целом, некоторые новые функции Java 8 не использовались в используемых в настоящее время проектах, но после обучения вы не увидите код этих новых функций Java 8 и не знаете, что случилось!
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!