JAVA8 lambda表达式的初识

一直想学学JAVA8,感觉是JAVA重要的里程碑版本之一。lambda表达式只闻其名,还没有实际用过,这里写几个简单的demo

尝试一下。

1.函数式接口

package org.java;

/**
 * @author: krauser
 * @date: Create in 上午10:12 2018/1/9
 * @Description:函数式接口 个注解是非必须的,只要接口符合函数式接口的标准(即只包含一个方法的接口)
 * 虚拟机会自动判断,但最好在接口上使用注解@FunctionalInterface进行声明,
 * 以免团队的其他人员错误地往接口中添加新的方法。
 * <p>
 * Java中的lambda无法单独出现,它需要一个函数式接口来盛放
 * lambda表达式方法体其实就是函数接口的实现。
 */
@FunctionalInterface
public interface FunctionalInterfaceDemo {
    /**
     * 说指定内容
     *
     * @param message
     * @return void
     */
     String saySomething(String message);

}
2.lambda的初次尝试
package org.java;

/**
 * @author: krauser
 * @date: Create in 上午10:19 2018/1/9
 * @Description: 包含三个部分
 * 一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数
 * 一个箭头符号:->
 * 方法体,可以是表达式和代码块,方法体函数式接口里面方法的实现,
 * 如果是代码块,则必须用{}来包裹起来,且需要一个return 返回值,
 * 但有个例外,若函数式接口里面方法返回值是void,则无需{}
 * 总体看起来像这样
 * (parameters) -> expression 或者 (parameters) -> { statements; }
 */
public class LambdaDemo {

    public static void main(String[] args) {
        FunctionalInterfaceDemo functionalInterfaceDemo = (personName) -> {
            System.out.println("Call:" + personName);
            return personName;
        };
        functionalInterfaceDemo.saySomething("person");
    }

}
3.引用方法

package org.java;

/**
 * @author: krauser
 * @date: Create in 上午10:45 2018/1/9
 * @Description: 其实是lambda表达式的一个简化写法,所引用的方法其实是lambda表达式的方法体实现,语法也很简单,左边是容器(可以是类名,实例名),中间是"::",右边是相应的方法名。如下所示:
 * <p>
 * ObjectReference::methodName
 * 一般方法的引用格式是
 * <p>
 * 如果是静态方法,则是ClassName::methodName。如 Object ::equals
 * <p>
 * 如果是实例方法,则是Instance::methodName。如Object obj=new Object();obj::equals;
 * <p>
 * 构造函数.则是ClassName::new
 */
public class MethodReferenceDemo {

    public static void main(String[] args) {
        FunctionalInterfaceDemo functionalInterfaceDemo = String::new;
        String result = functionalInterfaceDemo.saySomething("test");
        System.out.println(result);
    }

}

看起来写几个demo很简单,但是在项目的实际运用中还是蛮困难的,尤其是引用方法,还不得其味。只能说在保证项目稳定的前提下,可以多试着用lambda写一些很简洁大气的代码。加油我的2018!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值