java8 lambda 传入方法或者传入匿名函数 尝试理解

版权声明:The beautiful thing about learning is nobody can take it away from you. https://blog.csdn.net/xiuye2015/article/details/51573829
public class HelloWorld{

     public static void main(String []args){
        
        f(()->System.out.println("OK"));//传lambda表达式 一个匿名函数对应一个方法
        g(Math::random);
        f(A::f);//双冒号 即直接传方法参数 方法必须为静态方法
     }
     public static void f(VoidTest v){
         v.f();
     }
     public static void g(ReturnTest r){
         System.out.println(r.f());
     }
}

class A{
    public static void f(){
        System.out.println("a.f");
        
    }
}
/**
 * 可以声明FunctionalInterface注解或者不声明都起作用
 * 
 * /
@FunctionalInterface
interface ReturnTest{
    double f();
}

interface VoidTest{
    public void f();
}

sh-4.3$ java -Xmx128M -Xms16M HelloWorld                                                                                                                                                         
OK                                                                                                                                                                                               
0.40518138123687863                                                                                                                                                                              
a.f     

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页