Java中::用法

今天更新FXCreator的时候,更新Pagination插件的功能,国内很少有用fxml去配置前端的,就去google查了一下。
发现里面的代码有

this::function

这种用法,后来查了一下, 原来这是JDK8的一种语法糖。
这个博客有说明
https://www.cnblogs.com/tietazhan/p/7486937.html?tdsourcetag=s_pctim_aiomsg
this::function代表这个函数对象的方法,也可以用Object::function的方式。其中this::fuction不可以用在static方法上,而Object::function是用在Object类的static方法中。

import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

public class Test {
	public static void printValur(String str) {
		System.out.println("print value : " + str);
	}

	public static void main(String[] args) {
		List<String> al = Arrays.asList("a", "b", "c", "d");
		al.forEach(Test::printValur);
		// 下面的方法和上面等价的
		Consumer<String> methodParam = Test::printValur; // 方法参数
		al.forEach(x -> methodParam.accept(x));// 方法执行accept
	}
}

虽然吧,用以前的方法也能实现,但这样确实提高了代码的简洁性与可读性。

你可能感兴趣的:(Java)