湖南快3_陕西快3助手 - 花少钱中大奖代码广告位
fengzf的gravatar头像
fengzf2019-12-02 11:49:59
五分快三走势图_花少钱中大奖_Java 8新特性——Lambda表达式

Lambda允许把函数作为一个方法的参数使用,由编译器推断并转换为常规的代码,实现同样的功能代码更简洁。

语法:

         (parameters) -> expression

         (parameters) -> { statements;}

重要特征:

         1、不需要声明参数类型,编译器可以统一识别参数值

         例如:()->5  不需要参数,返回值5

          (x,y) -> x - y  没有声明参数类型,返回x - y的差值

         2、当有一个参数时无需定义括号,当有两个参数时必须定义括号

         例如:x -> 2 * x   一个参数,不用定义括号

               (x,y) -> x - y  两个参数,必须有括号

         3、主体包含一个语句,就不需要大括号

         4、如果主体只有一个表达式返回值则编译器会自动返回值

public class Java8LambdaDemo {

     public static void main(String args[]) {
         Java8LambdaDemo java8LambdaDemo = new Java8LambdaDemo();
        //类型声明
         Calculator addtion = (int a,int b) ->a+b;
         //不用类型声明
         Calculator subtraction = (a,b) -> a-b;
         //大括号的返回语句
         Calculator multiplication = (int a,int b) -> {return a*b; };
         //没有大括号的返回语句
         Calculator division = (int a,int b) -> a/b;

         System.out.println("100+50="+java8LambdaDemo.operate(100,50,addtion));
         System.out.println("100-50="+java8LambdaDemo.operate(100,50,subtraction));
         System.out.println("100*50="+java8LambdaDemo.operate(100,50,multiplication));
         System.out.println("100/50="+java8LambdaDemo.operate(100,50,division));
      }

    /**
     * 算数运算接口
     */
    interface  Calculator{
         int  calculate(int a,int b);
    }

    /**
     *操作方法
     */
    private int operate(int a,int b,Calculator calculator){
        return calculator.calculate(a,b);
    }
}

五分快三走势图_花少钱中大奖_Java 8新特性——Lambda表达式五分快三走势图_花少钱中大奖_Java 8新特性——Lambda表达式测试结果:

五分快三走势图_花少钱中大奖_Java 8新特性——Lambda表达式作用域:可以在直接在Lambda表达式中访问外层的局部变量,但表达式内层不能修改定义在表达式外的局部变量,否则会有编译错误。五分快三走势图_花少钱中大奖lambda表达式内的局部变量不允许与外部变量重名。

public class Java8LambdaScopeDemo {
     public static void main(String args[]) {
         final String salutation = "hello ";
         String myName = "I am Lambda ~";
         String today = "2019/12/02";
         SayHello greetingService = message -> {
             System.out.println(salutation + message + myName);
             //此处修改today出现变异错误
             //today = "2019/12/03";
             //此处定义的局部变量会出现编译错误
             //String myName = "Java";
         };

         greetingService.say("World ! ");
      }
     interface SayHello{
         /**
          * 打招呼方法
          * @param message
          */
         void say(String message);

     }
}

五分快三走势图_花少钱中大奖_Java 8新特性——Lambda表达式五分快三走势图_花少钱中大奖_Java 8新特性——Lambda表达式

 


打赏

分享到:

湖南快3_陕西快3助手 - 花少钱中大奖近浏览
沙特小王子 LV8昨天
月亮月亮
shaoyu0215 LV1昨天
星星
沙漠鱼 LV12昨天
月亮月亮月亮
fengyumeluo LV11前天
月亮月亮星星星星星星
sky丶小十 LV4前天
月亮
397312607 LV21月15日
星星星星
心印语 LV91月15日
月亮月亮星星
wangyu2019 LV111月14日
月亮月亮星星星星星星
maojianyun LV291月12日
太阳月亮月亮月亮星星
顶部客服微信二维码底部
>扫描二维码关注湖南快3_陕西快3助手 - 花少钱中大奖代码为好友扫描二维码关注湖南快3_陕西快3助手 - 花少钱中大奖代码为好友