方法引用的形式
方法引用的標準形式是:類名::方法名。(注意:只需要寫方法名,不需要寫括號)
有以下四種形式的方法引用:
型別示例
引用靜態方法
containingclass::staticmethodname
引用某個物件的例項方法
containingobject::instancemethodname
引用某個型別的任意物件的例項方法
containingtype::methodname
引用構造方法
classname::new
下面我們通過乙個小demo來分別學習這幾種形式的方法引用:
public class person
string name;
localdate birthday;
*** gender;
string emailaddress;
public string getemailaddress()
public *** getgender()
public localdate getbirthday()
public string getname()
public static int comparebyage(person a,person b)
}
引用靜態方法
person persons = new person[10];
//使用匿名類
arrays.sort(persons, new comparator()
});//使用lambda表示式
arrays.sort(persons, (o1, o2) -> o1.birthday.compareto(o2.birthday));
//使用lambda表示式和類的靜態方法
arrays.sort(persons, (o1, o2) -> person.comparebyage(o1,o2));
//使用方法引用
//引用的是類的靜態方法
arrays.sort(persons, person::comparebyage);
引用物件的例項方法
class comparisonprovider
public int comparebyage(person a,person b)
}comparisonprovider provider = new comparisonprovider();
//使用lambda表示式
//物件的例項方法
arrays.sort(persons,(a,b)->provider.comparebyage(a,b));
//使用方法引用
//引用的是物件的例項方法
arrays.sort(persons, provider::comparebyage);
引用型別物件的例項方法
string stringsarray = ;
//使用lambda表示式和型別物件的例項方法
arrays.sort(stringsarray,(s1,s2)->s1.comparetoignorecase(s2));
//使用方法引用
//引用的是型別物件的例項方法
arrays.sort(stringsarray, string::comparetoignorecase);
引用構造方法
public static , dest extends collection>
dest transferelements(source sourcecolletions, suppliercolltionfactory)
return result;
}...
final listpersonlist = arrays.aslist(persons);
//使用lambda表示式
setpersonset = transferelements(personlist,()-> new hashset<>());
//使用方法引用
//引用的是構造方法
setpersonset2 = transferelements(personlist, hashset::new);
java8 靜態方法引用
靜態方法引用 如果函式式介面的實現恰好可以通過呼叫乙個靜態方法完成 就可以使用靜態方法引用 只是呼叫 不做其他處理 classname exmaple1 function todo add function.date 2017年9月8日 下午10 39 06 author lelonta versi...
java 8 方法引用
如果lambda 表示式的 塊只有一行 程式就可以省略表示式 塊的花括號,不僅如此,如果只有一行 還可以使用方法的引用和構造器的引用 下面為四種引用的例項 public class function functionalinte ce inte ce mytest3 functionalinte c...
java8方法引用
方法引用為lambda的另外一種表現形式,其為 若lambda體的內容中已有方法實現了,我們可以對其使用 方法有引用 其有三種形式 1 物件 例項 方法名 2 類 靜態方法名 3 類例項方法名 第一種形式 例項 方法名 test public void test1 第二種形式,類 靜態方法 test...