观看本文前 您需要先掌握 Lambda表达式 如果您之前没有接触过 可以先查看我的文章
java Lambda概念 通过实现线程简单体验一下Lambda表达式
java Lambda表达式的标准格式及其前提带有(代码演示)
然后 我们用 Lambda表达式 写在里面的其实就是一种解决方案 拿参数做操作
那么 我们设想一下 如果我们Lambda中的代码 其他地方已经定义了 那么我们还有必要再自己写一次吗》
答案 自然是没必要的
那么 这时 我们就要通过java的方法引用来使用已经存在的解决方案的
那么 我们就用代码来演示一下
我们先创建一个包
下面创建一个 subInterface 接口
接口参考代码如下
public interface subInterface {
void printSolm(String s);
}
这里 我们定义了一个抽象方法 他接收一个 String 字符串类型的参数 没有返回值
然后 我们创建一个测试类 text 参考代码如下
public class text {
public static void main(String args[]) {
printSolm((String s) ->{
System.out.println(s);
});
}
public static void printSolm(subInterface sub) {
sub.printSolm("爱生活,爱java");
}
}
然后我们编写了一个printSolm函数 接收一个subInterface 对象的参数 然后 通过main调用了printSolm
这是一个比较标准的Lambda表达式写法
运行效果如下
然后 我们通过方法引用来简单改一下测试类的 main 方法
参考代码如下
public static void main(String args[]) {
printSolm(System.out::println);
}
运行结果如下
简单说 因为你用的System.out.println(s);
其实是有过 System.out 下的println为解决方案的 那就可以省列一些写法
简单说 就是可以省列一些参数的写法
他直接将你传给printSolm的参数给了println这是一种可推导的写法