美文网首页
5.jdk8和jdk9新特性

5.jdk8和jdk9新特性

作者: Junma_c631 | 来源:发表于2020-09-16 17:45 被阅读0次

一、jdk8

1.1 lambda表达式

https://www.yuque.com/books/share/9f4576fb-9aa9-4965-abf3-b3a36433faa6/swzzft

1.2 方法的引用

静态方法引用,通过类名::静态方法名, 如 Integer::parseInt
实例方法引用,通过实例对象::实例方法,如 str::substring
构造方法引用,通过类名::new, 如 User::new

public final class Integer {
    public static int parseInt(String s) throws NumberFormatException {
        return parseInt(s,10);
    }
}

通过方法引用,可以将方法的引用赋值给一个变量,通过赋值给Function,说明方法引用也是一种函数式接口的书写方式,Lambda表达式也是一种函数式接口,Lambda表达式一般用于自己提供方法体,而方法引用一般直接引用现成的方法。

public class User {
    private String username;
    private Integer age;

    public User() {
    }

    public User(String username, Integer age) {
        this.username = username;
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", age=" + age +
                '}';
    }

    // Getter&Setter
}
public static void main(String[] args) {
    // 使用双冒号::来构造静态函数引用
    Function<String, Integer> fun = Integer::parseInt;
    Integer value = fun.apply("123");
    System.out.println(value);

    // 使用双冒号::来构造非静态函数引用
    String content = "Hello JDK8";
    Function<Integer, String> func = content::substring;
    String result = func.apply(1);
    System.out.println(result);

    // 构造函数引用
    BiFunction<String, Integer, User> biFunction = User::new;
    User user = biFunction.apply("mengday", 28);
    System.out.println(user.toString());

    // 函数引用也是一种函数式接口,所以也可以将函数引用作为方法的参数
    sayHello(String::toUpperCase, "hello");
}

// 方法有两个参数,一个是
private static void sayHello(Function<String, String> func, String parameter){
    String result = func.apply(parameter);
    System.out.println(result);
}

lambda表达式
方法引用
stream..
https://blog.csdn.net/qq_28410283/article/details/80783946

二、jdk9 新特性

https://www.yuque.com/books/share/9f4576fb-9aa9-4965-abf3-b3a36433faa6/ocd6xt

相关文章

网友评论

      本文标题:5.jdk8和jdk9新特性

      本文链接:https://www.haomeiwen.com/subject/cfjhyktx.html