方法引用
方法引用实际上只是给方法起了个别名
方法引用的四种形式:
1.引用类中静态方法
类名称 : : 静态方法名称
2.引用某个对象的方法
实例化对象 : : 普通方法
3.引用类中普通方法
类名称 : : 普通方法名
4.引用类中的构造方法
类名称 : : new
// 方法引用 - 与lambda表达式搭配使用
interface IUtil<P,R>{
R switchPara(P p);
}
interface IUtil1<R>{
R switchPara();
}
interface IUtil2<R,P>{
R switchPara(P p1,P p2);
}
interface IUtil3<R,P>{
R switchPara(P p);
}
class Util{
private Integer num;
public Util(Integer num) {
this.num = num;
}
public String toString() {
return "Util{" +"num=" + num +'}';
}
}
public class Test {
public static void main(String[] args){
//引用类中静态方法valueOf()
IUtil<Integer,String> util = String :: valueOf;
System.out.println(util.switchPara(123).startsWith("1"));
//引用某个对象的方法
IUtil1<String> util1 = "hello" :: toUpperCase;
System.out.println(util1.switchPara());
//引用类中普通方法
IUtil2<Integer,String> util2 = String :: compareTo;
System.out.println(util2.switchPara("aa","bb"));
//引用类中的构造方法
IUtil3<Util,Integer> util3 = Util::new;
System.out.println(util3.switchPara(55));
}
}
输出结果为:
true
HELLO
-1
Util{num=55}