User类

package com.ven.java8.method.references;/*** 方法的引用* * @author xiaowen0623**/
public class User {private String name;private String age;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}/*** 静态方法* @param car*/public static void collide(final User user) {System.out.println("Collided " + user.getName());}public void follow(final User another) {System.out.println("Following the " + another.getName());}public void repair() {System.out.println("Repaired " + this.toString());}}

CreateFactory创建对象工厂接口

package com.ven.java8.method.references;import java.util.function.Supplier;/*** 创建对象的工厂* * @author xiaowen**/
public interface CreateFactory {/*** 通过Supplier函数接口创建对象* * @param <T>* @param supplier* @return*/public static <T> T create(final Supplier<T> supplier) {return supplier.get();}
}

测试:

package com.ven.java8.method.references;import java.util.Arrays;
import java.util.List;/*** 测试方法或构造函数引用* @author xiaowen0623**/
public class TestMethodReferences {public static void main(String[] args) {//第一种引用 构造方法引用,语法是:Class::new ,//对于泛型来说语法是:Class<T >::new,请注意构造方法没有参数:User user = CreateFactory.create(User::new);user.setName("xiaowen");user.setAge("11");List<User> users = Arrays.asList(user); System.out.println("大家好!我是"+users.get(0).getName()+" 今年"+users.get(0).getAge());//第二种 静态方法引用 //语法是:Class::static_method请注意这个静态方法只支持一个类型为user的参数。users.forEach(User::collide);//第三种是类实例的方法引用,语法是:Class::method请注意方法没有参数users.forEach(User::repair);//第四种是引用特殊类的方法//语法是:instance::method,请注意只接受user类型的一个参数final User police = CreateFactory.create(User::new);users.forEach( police::follow );}
}

java8 方法或构造函数的引用相关推荐

  1. java8方法引用符合_java8,方法引用

    当我们使用lambda表达式去创建一个匿名方法时,有时我们并没有做什么事情,仅仅是使用了对象中一个存在的方法.这种情况下,通过对象的方法名就能够很明显的推断出要使用 的方法,java8中的方法引用能够 ...

  2. 方法参数的值调用+引用调用+深浅拷贝

    [0]README 0.1)本文描述+源代码均 转自 core java volume 1, 旨在理清值调用+引用调用: [1]参数传递给方法的专业术语: 1.1)值调用:它表示方法接收的是调用者提供 ...

  3. 08_JS工厂方法和构造函数

    工厂方法和构造函数 工厂方法 工厂方法用来批量产生对象 function CreatCar(name,prase){// new 一个对象var obj = new Object();obj.name ...

  4. python魔法函数和装饰器_python魔法方法、构造函数、序列与映射、迭代器、生成器...

    在Python中,所有以__双下划线包起来的方法,都统称为"魔术方法".比如我们接触最多的__init__,魔法方法也就是具有特殊功能的方法. 构造函数 构造函数不同于普通方法,将 ...

  5. Java_面向对象基础(类、对象、方法和构造函数)

    Java的面向对象基础(类.对象.方法和构造函数) 面向对象的基本概念 面向对象的设计思想 什么是类 什么是对象 类的定义 设计面向对象的例子 步骤一:设计动物这个类 步骤二:创建具体的动物 步骤三: ...

  6. VS中的方法名前的引用去掉

    前言 VS中的方法上面默认提示引用(如下图),看着让人觉得代码散,而且这个提示可有可无,于是决定将这个提示去掉. 步骤如下: 工具→选项→文本编辑器→所有语言→CodeLens→去掉√. 上机操作: ...

  7. Java8————方法引用

    译者注:本篇博客翻译自Oracle官方教程<Method References>.作为Java 8 新特性Lambda表达式的引申概念,博主依然采用官方文档的方式来学习这一重要的概念.希望 ...

  8. java8 方法引用详解_Java8中如何通过方法引用获取属性名详解

    前言 在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点. ...

  9. java8 方法引用好处_Java 8方法引用

    原标题:Java 8方法引用 方法引用有助于通过名称指向方法.使用"::"符号描述方法引用.方法引用可以用来指出以下类型的方法 - 静态方法 实例方法 使用new运算符的构造函数( ...

最新文章

  1. 异步的两种写法: async 与 BeginInvoke
  2. You should rebuild using libgmp = 5 to avoid timing attack vulnerability
  3. Office+SharePoint+Server+2007+部署图示指南
  4. (JavaWeb)Filter过滤器
  5. 聊聊高并发(三十)解析java.util.concurrent各个组件(十二) 理解CyclicBarrier栅栏
  6. sqlserver迁移数据到mysql_SQLServer数据库之将ABP的数据库从SQLSERVER迁移到MySql
  7. keras embedding层_初识TextCNN及keras实现
  8. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(四、TensorFlow 进阶)
  9. MS SQL入门基础:存储过程概述
  10. Nagios搭建及问题详解(一)
  11. 数学基础(9)--MATLAB 数据拟合 SSE,MSE,RMSE,R-square
  12. 计算机科学与技术用惠普星15,暑期最有颜值的学习装备,惠普星14高性能轻薄本必选...
  13. 正弦交流电有效值系数sqrt(2)的推导
  14. 案例丨GW-PBM-PN网关将Profibus-DP从站设备集成入PROFINET网络
  15. 苹果注册开发者账号过程
  16. 澳鹏Appen收购Quadrant:移动定位数据业务进一步增强
  17. 前端 day02 CSS
  18. 【译】volatile C语言关键字,如何使用?
  19. DS18B20温度传感器——测试环境温度及代码
  20. win10系统全角半角切换

热门文章

  1. 买不到口罩,京东到货通知不靠谱,python爬虫帮你时刻盯着
  2. linux查看日志保留时间多长的命令,Linux系统日志的一些讲解
  3. 事件驱动和消息驱动的对比
  4. Kafka系列之:不重启kafka集群设置kafka topic数据保留时间
  5. 3D hand pose:Minimal Hand
  6. 差分进化算法和遗传算法的区别
  7. 孤傲苍狼 的MySQL总结_孤傲苍狼
  8. 爬取微博用户行为数据语义分析数据挖掘报告
  9. forword和sendRedirect区别
  10. 不停的往android手机串口写数据