jdk8新特性


前言

之前一直对jdk8新特性感觉一直看不懂,现在实习也没什么事情,学习了一下,实际也没那么难。还是要多练习。


提示:以下是本篇文章正文内容,下面案例可供参考

一、函数接口是什么?

在接口中含有抽象方法(显示声明函数)的,注释@FunctionalInterface用作检查代码块

特性说明:
①在接口中只有一个非默认方法void(非静态)
②在jdk8中新增@FunctionalInterface注解进行限定,用于显示转化为ladbma表达式
③package java.util.concurrent; 和 Runnable 接口都是最直观的函数接口

二、使用步骤

1.新增4种重要的函数式接口

函数形接口
@FunctionalInterface
public interface Function<T, R> {
    R apply(T t);
}
消费形接口
@FunctionalInterface
public interface Consumer<T> {

    void accept(T t);
}    
供给形接口
@FunctionalInterface
public interface Supplier<T> {

    T get();
}
判断形函数
@FunctionalInterface
public interface Predicate<T> {

    boolean test(T t);
}    

2.ladbma表达式

代码如下(示例):
① Lambda表达式(基于函数的匿名表达式)

public class User {
    int age;

    public User(int age) {
        this.age = age;
    }

    public User() {
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}


自定义接口
public interface Test {
    void yourSelf(String str);
}
public static void main(String[] args) {

        Test test = (str -> System.out.println(str));
        test.yourSelf("你好");
}

构造器的引用
 Function<Integer,User> fun = (age)->{
            return new User(age);
 };
静态方法的引用
Consumer con = System.out::println;

匿名方法的引用
Consumer consumer = (str)-> {
   System.out.println(str);
};

 类方法的调用
 BiPredicate<String,String> biPredicate = String::equals;

 匿名调用
 BiPredicate<String,String> stringBiPredicate = (str1,str2)->{
      return  str1.equals(str2);
 };
 实例对象的引用
  User user = new User();
  对象方法引用
  Supplier supplier = ()->user.getAge();

  匿名调用
   Supplier result = user :: getAge;

语法:( object str,…)[参数列表] ->[箭头符号] 代码块或表达式
相当于方法的调用、


总结

提示:这里对文章进行总结:
说白了就是通过函数式进行编程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值