美文网首页
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