1 package day13.lesson3.p3;
2
3 /*
4 3.5 Lambda表达式支持的方法引用:引用类的实例方法
5
6 引用类的实例方法,其实就是引用类中的成员方法
7
8 格式
9 类名::成员方法
10 范例
11 String::substring
12 public String substring(int beginIndex,int endIndex)
13 从beginIndex开始到endIndex结束,截取字符串。返回一个子串,子串的长度为endIndex-beginIndex
14
15 练习描述
16 定义一个接口(MyString),里面定义一个抽象方法:
17 String mySubString(String s,int x,int y);
18 定义一个测试类(MyStringDemo),在测试类中提供两个方法
19 一个方法是:useMyString(MyString my)
20 一个方法是主方法,在主方法中调用useMyString方法
21 */
22 public class MyStringDemo {
23 public static void main(String[] args) {
24 //Lambda表达式
25 /*useMyString((String s, int x, int y) -> {
26 return s.substring(x, y);
27 });*/
28 useMyString((s, x, y) -> s.substring(x, y));
29
30 //方法引用之引用类的实例方法
31 useMyString(String::substring);
32
33 //Lambda被类的实例方法替代时,它的第一个参数(s)作为调用者,后面参数(x,y)全部传递给该方法(substring)作为参数
34 }
35
36 private static void useMyString(MyString ms){
37 String s = ms.mySubString("HelloWorld", 2, 5);
38 System.out.println(s);
39 }
40 }
41
42 interface MyString{
43 String mySubString(String s,int x,int y);
44 }
