zoukankan      html  css  js  c++  java
  • jdk1.8 -- 方法推导 静态方法、实例方法、构造方法推导

    一.静态方法的推导

    public class MainTest {
        
        public static void main(String[] args) {
            
            // 正常情况下我们需要通过写一个consumer的方法来调用
            testConsumer("abc",(s)->System.out.println(s));
            System.out.println("=====================");
    
         //但是我们只是将一个内容输入,没必要这么麻烦,jdk1.8 已经为我们考虑到这样的写法
            testConsumer("abc",System.out::println);
            //语法:
            //    ContainingClass::staticMethodName 
    } 
        public static void testConsumer(String s,Consumer<String> c){ 
             c.accept(s);
        }
    }

    二.实例方法推导

    public class MainTest {
        
        public static void main(String[] args) {
              
            //2.实例方法的推导
         // 通常情况我们要获取一个字符串的值应该这样获取
            String value = "123";
            String valueOf1 = String.valueOf(value);
            System.out.println("======== valueOf1 ====== "+valueOf1);
            //通过lambda 表达式可知,这其实就是一个FunctionInterface,而在jdk1.8中定义了特殊的写法
            // 语法:
            //     containingObject::instanceMethodName 
            Function<String,String> f = String::valueOf;
            System.out.println("======== valueOf 2 ====== "+f.apply("123"));
             
        }
    }

    三.构造函数推导

    public class MainTest {
        
        
        public static void main(String[] args) {
            
            //3.构造函数推导
                    
            //3.1通常情况我们可以通过lambda推导来创建一个对象
            testConstruct("red", 100,(s,w)->new Apple(s,w));
            
            //3.2在jdk1.8 的lambda 中写法如下
            BiFunction<String,Long,Apple> fApple  = Apple::new;
            fApple.apply("red", 100L);
            
            //总结:构造函数其实就是一个静态方法而已,只不过是特殊的一个方法,为什么 new 一个对象还要这么麻烦
            //      我们通过这种写法可以在jdk1.8后面的应用中可以更加的快捷和方便
        }
        public static Apple testConstruct(String color,long weight,BiFunction<String,Long,Apple> f){
            return f.apply(color,weight);
        }
    }
  • 相关阅读:
    WIN7右下角的声音图标不见了
    无法解决 equal to 运算中 "Chinese_PRC_BIN" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突
    查看表空间信息SQL集合
    Oracle分区表
    Oracle数据库的创建、数据导入导出
    Oracle查询出最最近一次的一条记录
    adb命令
    synergy在Windows和ubuntu 多台PC共享一套键盘鼠标
    git add 之后因为没提交正确文件需要撤销
    make clean-kernel && make kernel
  • 原文地址:https://www.cnblogs.com/MrRightZhao/p/10935380.html
Copyright © 2011-2022 走看看