lambda表达式双冒号使用条件_java_java基础_lambda表达式双冒号用法
过于基础,就不废话了,实验代码如下:
package com.demo;
import java.util.Arrays;
import java.util.List;
import java.util.function.BiPredicate;
import java.util.function.Function;
public class DoubleColonTest {
String str;
public DoubleColonTest(String str) {
this.str = str;
}
public static void main(String[] args) {
/**
* :: 双冒号表示方法引用
* 案例一:对象::实例方法
* public interface Consumer {
* void accept(T t);
* }
*
* public void println(Object x) {
* 此处省略
* }
*/
List list = Arrays.asList(1, 2, 3);
list.forEach(System.out::println);
System.out.println("------------分割线------------------");
/**
* 案例二:类::实例方法
* public interface BiPredicate {
* boolean test (T t, U u);
* }
*
* public boolean equals(Object obj) {
* return (this == obj);
* }
*/
System.out.println(testEquals(Object::equals, "a", "a"));
System.out.println("------------分割线------------------");
/**
* 案例三:类::静态方法
* public interface Function {
* R apply (T t);
* }
*
* public static int abs(int a) {
* return (a < 0) ? -a : a;
* }
*
* 总结:当方法的参数类型,参数个数,参数顺序与接口方法一致时,可以使用双冒号
* java内置了许多函数式接口,在java.util.function下。感兴趣的同学可以看下
*/
System.out.println(testAbs(Math::abs, -10));
System.out.println("------------分割线------------------");
/**
* 双冒号表示构造器引用,当构造器的参数类型,参数个数,参数顺序与接口方法一致时,可以使用双冒号
* public interface Function {
* R apply (T t);
* }
*
* public DoubleColonTest(String str) {
* this.str = str;
* }
*
*/
Function testFunction = DoubleColonTest::new;
testConstructor(testFunction, "hello world");
testConstructor(DoubleColonTest::new, "hello the world");
System.out.println("------------分割线------------------");
/**
* 双冒号表示数组引用,当方法的参数类型,参数个数,参数顺序与接口方法一致时,可以使用双冒号
* public interface Function {
* R apply (T t);
* }
*
* Integer [] integers = new Integer[t];
*/
testArray(Integer[]::new, 10);
}
public static boolean testEquals(BiPredicate biPredicate, Object obj1, Object obj2) {
return biPredicate.test(obj1, obj2);
}
public static Integer testAbs(Function function, Integer integer) {
return function.apply(integer);
}
public static void testConstructor(Function function, String str) {
DoubleColonTest test = function.apply(str);
System.out.println(test.str);
}
public static void testArray(Function function, Integer length) {
Integer[] apply = function.apply(length);
System.out.println(apply.length);
}
}
lambda表达式双冒号使用条件_java_java基础_lambda表达式双冒号用法相关推荐
- Java基础_Lambda表达式 函数是接口 Stream流
一.Lambda表达式(1.8特性) 函数式编程始终编程方式,它将电脑视为函数的计算.将业务逻辑细化.抽象.封装成一个个功能函数(方法),并借助语言自带的高阶函数,将整个业务流程转化为函数之间的相互调 ...
- lambda表达式可以用来声明_lambda表达式可以用来创建包含多个表达式的匿名函数...
[单选题]下面程序中语句print(i*j)一共执行了____次. for i in range(5): for j in range(2,5): print(i*j) [填空题]_____是目前比较 ...
- VUE基础、表达式和指令
1.Vue实例挂载(el)的标签 每个Vue实例通过el配置挂载的标签,该标签可以通过id或者是class挂载. 实例上的属性和方法只能够在当前实例挂载的标签中使用. <div id=" ...
- Verilog基础:表达式位宽的确定(位宽拓展)
相关文章 Verilog基础:位宽拓展和有符号数运算的联系 Verilog基础:表达式符号的确定 Verilog基础:数据类型 表达式位宽 如果想要在计算表达式时获得和谐一致的结果,那么控制表达式中的 ...
- javascript基础语法——表达式
前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression).本文将详 ...
- 表达式树练习实践:入门基础
什么是表达式树 来自微软官方文档的定义: 表达式树以树形数据结构表示代码. 它能干什么呢? 你可以对表达式树中的代码进行编辑和运算.这样能够动态修改可执行代码.在不同数据库中执行 LINQ 查询以及创 ...
- JavaScript 基础知识 表达式和运算符
表达式的概念:将同类型的数据(如常量.变量.函数等),用运算符号按一定的规则连起来的.有意义的式子称为表达式 一.原始表达式 最简单的表达式,是表达式的最小单位.JavaScript中的原始表达式包含 ...
- 学习游戏原画需要什么条件或者基础吗?
随着游戏行业的不断发展,有报告显示,如今我们国家已经跻身进入世界游戏大国之一,而游戏产业在带动经济发展的同时,同样也充当了让人们身心放松的角色.而游戏原画作为游戏行业中缺一不可的存在,在游戏制作中处于 ...
- APS推进实施的条件与基础
APS已经成为数字化转型应用的热点.前两天eworks组织的一个活动上,我讲了一次APS选型策略,听众提了很多问题,其中有一个问题是APS推进实施的条件与基础.因为弹窗在家办公,所以抽空尝试回答一下. ...
最新文章
- 图解ARP协议分析实例
- 【学习笔记】14、标准数据类型—字典
- c语言游戏编程网盘下载,C语言游戏编程 计算器(5分下载)
- js鼠标按键事件和键盘按键事件用法实例汇总
- 对于Mybatis在C#.Net中个人使用的总结(一) Mybatis 的结果映射
- 【Hibernate】Hibernate实体关系映射——双边的多对多关系
- 学习笔记-canny边缘检测
- SAP MM ME51N 创建采购申请单据时候永远取物料主数据基本计量单位
- opengl 实时波形显示_OpenGL1------OpenGL概述
- Python实现机房管理软件的文件分发功能
- mybatis基础总结01
- IDEA开发工具当前窗口导入多个项目
- 第073封“情书”:小目标20181022Using UV Layout ForGeometryPacking<Entagma>Houdini 2018
- 2寸的照片长宽各是多少_1寸和2寸的照片的长和宽各是几厘米?
- 一款老飞飞_魅力飞飞脚本研究增加攻击与暴击几率方式探讨源码(附带易语言源码)
- “满五唯一”和“满二唯一”是什么?有什么不同?
- 【MySQL】—入门介绍
- 树莓派制作无线路由器
- git Incorrect username or password (access token)问题解决
- 怎么查看拼多多店铺销量?怎么查看店铺后台数据图?
热门文章
- WEB短信平台定制 短信系统构建 路由通道搭建 web版短信后台管理系统 概括简介
- 微信公众号--开发模式之用户关注后自动回复(Java实现)
- java引_JAVA中的引用
- NDK-r25交叉编译qemu:tests/qtest/libqos/libqos.fa.p/pci.c.o报错
- dom4j的一些总结
- 哪个软件能代替斐讯路由_斐讯路由器控制软件 4.2.1 去广告版 - 用手机管理斐讯路由器...
- 斐讯dc1服务器什么时候修复,[4月1日更新!!]斐讯DC1插座自制固件接入ha
- 学习笔记 -《量子计算与编程入门》- 量子程序
- 博客的WordPress地址(URL)修改后博客打不开解决方法
- docker(七)容器与外部通信