Lambda表达式的简化

Lambda表达式简化
    1.去掉所有参数类型
    注意: 
        参数类型要么都保留,要么都去掉.

    2.去掉圆括号"()",花括号"{}"和分号";"
    注意:
        只有一个参数时, 才可以去掉圆括号"()"
        方法体内只有一条语句时, 才可以去掉花括号"{}"和分号";"


/**
 * Lambda表达式的简化
 * 1.去掉所有参数类型
 * 2.去掉圆括号"()",花括号"{}"和分号";"
 */
public class DemoLambda3 {

    public static void main(String[] args) {

        // 匿名内部类
        Human human = new Human() {
            @Override
            public void getAge(int age) {
                System.out.println("I'm " + age + " years old.");
            }
        };
        Color color = new Color() {
            @Override
            public void getColor(int r, int g, int b) {
                System.out.println("I'm rgb(" + r + ", " + g + ", " + b + ")");
            }
        };
        human.getAge(18);
        color.getColor(1, 2, 3);

        // Lambda表达式
        human = (int age) -> {
            System.out.println("I'm " + age + " years old.");
        };
        color = (int r, int g, int b) -> {
            System.out.println("I'm rgb(" + r + ", " + g + ", " + b + ")");
        };
        human.getAge(3);
        color.getColor(10, 20, 30);

        /*
            Lambda表达式简化
            1.去掉所有参数类型
            注意: 参数类型要么都保留,要么都去掉.
         */
        human = (age) -> {
            System.out.println("I'm " + age + " years old.");
        };
        color = (r, /*int*/ g, b) -> {
            System.out.println("I'm rgb(" + r + ", " + g + ", " + b + ")");
        };
        human.getAge(100);
        color.getColor(0, 0, 0);

        /*
            Lambda表达式简化
            2.去掉圆括号"()",花括号"{}"和分号";"
            注意:
                只有一个参数时, 才可以去掉圆括号"()"
                方法体内只有一条语句时, 才可以去掉花括号"{}"和分号";"
         */
        human = age -> System.out.println("I'm " + age + " years old.");
        color = (r, g, b) -> {
            System.out.println("I'm rgb(" + r + ", " + g + ", " + b + ")");
            System.out.println("In other words, I am white.");
        };
        human.getAge(100);
        color.getColor(0, 0, 0);

    }
}

/**
 * 函数式接口
 * 抽象方法有1个参数
 */
interface Human {
    void getAge(int age);
}

/**
 * 函数式接口
 * 抽象方法有3个参数
 */
interface Color {
    void getColor(int r, int g, int b);
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛声依旧很冷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值