1 package day13.lesson3.p3;
2
3 /*
4 3.4 Lambda表达式支持的方法引用:引用对象的实例方法
5
6 引用对象的实例方法,其实就引用类中的成员方法
7
8 格式
9 对象::成员方法
10 范例
11 "HelloWorld"::toUpperCase
12 String类中的方法:public String toUpperCase() 将此String所有字符转换为大写
13
14 练习描述
15 定义一个类(PrintString),里面定义一个方法
16 public void printUpper(String s):把字符串参数变成大写的数据,然后在控制台输出
17 定义一个接口(Printer),里面定义一个抽象方法
18 void printUpperCase(String s)
19 定义一个测试类(PrinterDemo),在测试类中提供两个方法
20 一个方法是:usePrinter(Printer p)
21 一个方法是主方法,在主方法中调用usePrinter方法
22 */
23 public class PrinterDemo {
24 public static void main(String[] args) {
25 //Lambda表达式
26 /*usePrinter((String s) -> {
27 *//*String result = s.toUpperCase();
28 System.out.println(result);*//*
29 System.out.println(s.toUpperCase());
30 });*/
31 usePrinter(s -> System.out.println(s.toUpperCase()));
32
33 //方法引用之引用对象的实例方法
34 PrintString ps = new PrintString();
35 usePrinter(ps::printUpper);
36
37 //Lambda被对象的实例方法替代时,它的形式参数(s)全部传递给该方法(printUpper)作为参数
38 }
39
40 private static void usePrinter(Printer p){
41 p.printUpperCase("HelloWorld");
42 }
43 }
44
45 class PrintString{
46 public void printUpper(String s){
47 String result = s.toUpperCase();
48 System.out.println(result);
49 }
50 }
51
52 interface Printer{
53 void printUpperCase(String s);
54 }
