zoukankan      html  css  js  c++  java
  • Java之 1.8新特性

    1.8新特性看 https://blog.csdn.net/ioriogami/article/details/12782141 写的超棒  ,下面只是总结

    1.Lambda表达式
      使用前提
        1.必须是函数式接口
        2.必须参数和局部变量等等都要一一对应
      标准格式
        (参数类型 参数名)->{ 方法体}():方法的参数 没有则不写 如果多个 ,隔开
          ->:代表指向动作
          {}:重写方法 方法体的内容
      省略格式规则
        1.参数类型可以省略 (Person p) (p)
        2.如果只有一个参数 ()可以省略 (Person p) p
        3.如果方法体中只有一条语句 {} return ;都可以省略 但是如果省略 必须全部省略
    2.函数式接口
      定义:只有一个抽象方法的接口(但是可以有其他方法 例如 私有 静态 默认)
      可以使用@FunctionalInterface来验证一个接口是否是函数式接口 是 不报错 不是报错

      常用的4个函数式接口
        Supplier<T>接口 生产型接口
        T get() 获取一个指定泛型数据类型的数据

        Consumer<T>接口 消费型接口
        void accept(T t) 对指定泛型类型的数据进行消费(处理)
        andThen一步接一步 操作的是多个Consumer对象

        Function<T,R>接口 类型转换的接口
        R apply(T t) 根据T类型的数据获取R类型的结果
        andThen一步接一步 操作的是多个Function对象

        Predicate<T> 接口 判断型接口
        boolean test(T t) 对传入的参数可以进行判断返回boolean类型结果
        and,or,negate 并且 或者 取反
    3.方法引用
      对象名引用成员方法
        对象名::方法名
          Assistant a = new Assistant();
          a::dealFile
      类名引用静态方法
        类名::静态方法名
          Integer::parseInt
      类名引用构造方法
        类名::new
          Person::new
      数组引用构造
        int[]::new
        String[]::new
    4.Stream流
      获取流
        1.Collection的stream()方法
        2.Stream的静态方法of(T...t)
          forEach(Consumer<T> con)
            对流中的元素逐一处理 我们通常都是打印 遍历 终结方法只能调用一次

          long count()
            Stream中元素的个数 终结方法只能调用一次
          limit(long n)
            获取前n个元素 返回Stream对象
          skip(long n)
            跳过前n个元素 返回Stream对象
          filter((Predicate<T> predicate)
            过滤条件
          map(Function<T,R> f)
            将一种类型的Stream转换为另一种类型的Stream
          static Stream concat(Stream s1 ,Stream s2)
            静态方法 将两个流合并成一个流

      将Stream转换为集合
        List<String> list = stream.collect(Collectors.toList());
        Set<String> set = stream.collect(Collectors.toSet());
      将Stream转换为数组
        Object[] objArray = stream.toArray();
        String[] strArray = stream.toArray(String[]::new);

  • 相关阅读:
    spring data实现自定义的repository实现类,实现跟jpa联通
    SQLYog快捷键大全
    JSP 中EL表达式用法详解
    java中的标记接口
    单元测试中快速执行某个方法
    Spring Boot 以 jar 包方式运行在后台
    Spring Data JPA
    扩展spring data jpa的数据更新方法时注意事项
    在Spring Data JPA 中使用Update Query更新实体类
    高速创建和mysql表相应的java domain实体类
  • 原文地址:https://www.cnblogs.com/youyouxiaosheng-lh/p/10045915.html
Copyright © 2011-2022 走看看