一.静态方法的推导

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);
}
}

jdk1.8 -- 方法推导 静态方法、实例方法、构造方法推导的更多相关文章

  1. C#三大方法:虚方法、静态方法、实例方法

    虚方法:使用virtual关键字定义,当子类继承父类时,可以对父类中的虚方法进行重写. 如下面代码中的类B,它继承类A,类A实现了接口I(实现了接口中的foo()方法).在类A中使用virtual将f ...

  2. Python的列表推导式,字典推导式,集合推导式使用方法

    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...

  3. iOS---类方法(静态方法)和实例方法

    类方法   实例方法是以+开头的方法, 实例方法是用实例对象访问:   类方法的对象是类而不是实例,通常用来创建对象或者工具类.     在实例方法里,根据继承原理发送消息给self和super其实都 ...

  4. python的各种推导式(列表推导式、字典推导式、集合推导式)

    推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(lis ...

  5. Java8新特性之四:接口默认方法和静态方法

    在JDK1.8以前,接口(interface)没有提供任何具体的实现,在<JAVA编程思想>中是这样描述的:"interface这个关键字产生了一个完全抽象的类,它根本就没有提供 ...

  6. C# 动态方法和静态方法的区别

    C# 动态方法和静态方法的区别 (转) 动态方法与静态方法的区别: 1,使用方法上的区别:动态方法,在使用时需要先创建实例,才能调用实例方法,而静态方法则不需要,直接使用即可. 示例代码如下:静态方法 ...

  7. jdk8系列一、jdk8 Lamda表达式语法、接口的默认方法和静态方法、supplier用法

    一.简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性. 在本文中我们将学习这些新特性,并用实际 ...

  8. Python基础8:列表推导式(list)字典推导式(dict) 集合推导式(set)

    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...

  9. python ——面向对象进阶(反射,双下线方法,静态方法,类方法)

    属性 如果你已经了解Python类中的方法,那么属性就非常简单了,因为Python中的属性其实是普通方法的变种. 哎,其实就是这样,我们看一下当我们想查看税后工资的时候,这其实是一个人的属性,但是它却 ...

随机推荐

  1. python中模块、包、库的区别和使用

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  2. Python实用黑科技——解包元素(2)

    需求: 前面的文章讲的是使用变量的个数需要和迭代器数据变量的元素个数相同的方法,但更多的时候确实不想根据元素个数n来定义相应多的变量,而是希望用较少的变量( def drop_first_last(g ...

  3. 什么是挂载?mount的用处在哪?

    关于挂载的作用一直不是很清楚,今天在阅读教材时看见了mount这个命令,发现它的用处很隐晦但非常强大.奈何教材说的不明朗,因此在网上整合了一些优秀的解释,看完之后豁然开朗. 1.提一句Windows下 ...

  4. 继承关系下的this关键字

    继承关系下的this关键字 在继承关系下,父类中的this关键字并不总是表示父类中的变量和方法.this关键字的四种用法如前文所述,列举如下. 1) this(paras…); 访问其他的构造方法 2 ...

  5. vue 动态渲染数据很慢或不渲染

    vue 动态渲染数据很慢或不渲染 原因是因为vue检测速度很慢,因为多层循环了,在VUE 2.x的时候还能渲染出来,1.x的时候压根渲染不出来.解决方式:在动态改变数据的方法,第一行加上 this.$ ...

  6. css3网格效果(整理)

    css3网格效果(整理) 一.总结 一句话总结: css3网格原理是渐变(linear-gradient)绘制图形,background-size属性指定重复的小单元的大小 多个渐变(linear-g ...

  7. [Mybatis]查询Sql得到一个字符串

    // find min date HashMap<String, String> minDateMap = new HashMap<String, String>(); min ...

  8. redis 的使用 及 配置文件解读

    redis-server命令 redis-server /usr/local/redis/conf/redis.conf #加配置文件绝对路径启动redis服务 redis-server /usr/l ...

  9. CSS 优先级法则

    样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External styl ...

  10. RabbitMQ学习之:(六)Direct Exchange (转贴+我的评论)

    From: http://lostechies.com/derekgreer/2012/04/02/rabbitmq-for-windows-direct-exchanges/ RabbitMQ fo ...