我们来学习Lambda配合方法引用 引用对象中的实力方法
我们来做一个案例
定义一个类 里面定义一个方法 这个方法的作用是 将字符串转大写 然后在控制台输出
然后 在定义一个接口 里面定义一个抽象方法 这个方法对应上一个类中的方法
最后 创建测试类 里面写两个方法 一个是 接口的实例方法 另一个是调用接口的方法
我们先创建一个java项目 然后 直接在src下创建一个类 叫 Printstring
参考代码如下
package com.company;public class Printstring {public void printUpper(String s) {String result = s.toUpperCase();System.out.println(result);}
}
这里 我们定义了一个方法 接收一个字符串类型的参数 然后通过String的toUpperCase方法 将字符串转为大小 最后在控制台中输出结果
然后 在src下创建一个接口 叫 Printer
参考代码如下
package com.company;public interface Printer {void printUpperCase(String s);
}
我们这里定义了一个抽象方法 接收一个字符串类型参数 没有返回值
然后 我们在src下创建测试类 参考代码如下
package com.company;public class Main {public static void main(String[] args) {Printstring ps = new Printstring();usePrinter(ps::printUpper);}private static void usePrinter(Printer p) {p.printUpperCase("hello world");}
}
首先 我们定义 usePrinter 接收一个Printer 的接口对象 然后 调用接口中的printUpperCase方法 传递参数为hello world 然后 我们在main方法中 声明了Printstring 类的对象
将声明好的 Printstring 对象 扔给了usePrinter 就相当于 Printstring 类实现了Printer 接口 然后 调用了其中的printUpper
这里需要知道一点 当Lambda配合方法应用调用类的实例方法时 会自动将自己的参数全部给被调用的对象方法作为行参
就是说hello world被传入了printUpper方法中 运行结果如下
