::是java8 中新引入的运算符
- Class::function的时候function是属于Class的,应该是静态方法。
- this::function的funtion是属于这个对象的。
- 注意:
- 调用方法可以名称不一样,但是需要参数一样(返回值无影响)
/**
* @author Jly
* @date 2019/3/26 14:58
*/
public class Test {
protected interface FunctionEx {
void apply(String a);
}
public void adddd(String a){
System.out.println("adddd---" + a);
add(a,this::doAdd);
}
public String doAdd(String a){
System.out.println("doAdd---" + a);
return "";
}
public void add(String a,FunctionEx functionEx){
System.out.println("add---" + a);
functionEx.apply(a); // 其实这里执行的就是doAdd
}
public static void main(String[] args) {
Test test = new Test();
System.out.println("main---");
test.adddd("Jly");
}
}
执行结果: