Java8新特性—Lambda表达式(方法调用)示例

Lambda表达式中关于方法调用方式,常用有以下几种:


一、通过:方法调用:


1.对象::实例方法名
2.类名::静态方法名
3.类名::实例方法名

二、通过:构造器引用:


类名:new
or
数组类型:new

具体示例参考以下示例代码:


 

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
 
public class Test {
 
    public String getValue1(String name) {
        return "test:" + name;
    }
 
    public static String getValue2(String name) {
        return "test:" + name;
    }
 
    public static void main(String[] args) {
        // 默认的Lamba调用方法逻辑
        Test obj = new Test();
        IUser iu0 = (x) -> {
            return obj.getValue1(x);
        };
 
        // 1)对象::实例方法名
        IUser iu1 = (x) -> obj.getValue1(x);
        // 可以写成:
        IUser iu11 = obj::getValue1;
 
        // 2)类名::静态方法名
        IUser iu2 = (x) -> Test.getValue2(x);
        IUser iu22 = Test::getValue2;
 
        // 2)类名:new
        Supplier<String> sup1 = () -> new String();
        // 可以写成:
        Supplier<String> sup2 = String::new;
 
        Function<Integer, String[]> fun1 = (x) -> new String[x];
        // 可以写成:
        Function<Integer, String[]> fun2 = String[]::new;
 
        // 2)类名::实例方法名
        BiPredicate<String, String> bi1 = (x, y) -> x.equals(y);
        // 可以写成:
        BiPredicate<String, String> bi2 = String::equals;
 
    }
 
}

 


http://www.niftyadmin.cn/n/1555720.html

相关文章

pm2守护php进程,使用PM2守护Nodejs命令行程序

介绍pm2是nodejs的一个带有负载均衡功能的应用进程管理器的模块&#xff0c;类似有Supervisor&#xff0c;forever&#xff0c;用来进行进程管理。一、安装&#xff1a;npm install pm2 -g二、启动&#xff1a;pm2 start app.jspm2 start app.js --name my-api #my-api为PM2进程…

Java8新特性—Lambda表达式(系统内置接口)示例

说明&#xff1a; 在java8中使用Lambda表达式时候&#xff0c;java已经内置了四大核心函数式接口&#xff0c; 分别是&#xff1a;1.消费型接口 2.供给型接口 3.函数型接口 4.断言型接口 因此一些常用/简单的接口&#xff0c;用户可以不用自定义了&#xff0c;直接用系统提供的…

php 调用日历控制,php 总结(7) while for 循环控制 深层应用 两种方式实现日历...

一&#xff1a;总日子设定好 ,最外面来一个大循环 tr&#xff0c;每7天 来一个循环th 这个循环 的时候给大循环 i &#xff0c; 相当于大循环每隔 7个数字来一次循环Documenttable{width: 460px;}tr{float: left}th{border: 1px solid black;width: 60px;float: left}周日周一…

AOP切面实现方法日志打印耗时计算

很简单&#xff0c; 通过AOP实现每个方法访问时候统一进行日志打印和耗时计算&#xff0c; 相关配置&#xff1a; 1、spring配置 在spring配置xml文件中设置启用aop <aop:aspectj-autoproxy proxy-target-class"true" /> 2、aop具体业务类(通过注解的方式&…

spring tool suite插件安装

日常Spring开发一般都会用到spring tool suite插件&#xff0c;以Eclipse为例&#xff0c;其实插件配置很简单&#xff0c;可以在线配置或者离线配置(也就是把插件下载后添加)&#xff0c;除了这两种方式之外&#xff0c;spring tool suite还可以通过另外一种方式配置&#xff…

php数组位运算,PHP 位运算

目录位运算符 例子名称结果$a & $bAnd(按位与)将把 $a 和 $b 中都为 1 的位设为 1。$a | $bOr(按位或)将把 $a 和 $b 中任何一个为 1 的位设为 1。$a ^ $bXor(按位异或)将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。~ $aNot(按位取反)将 $a 中为 0 的位设为 1&#xf…

ID取模分片

根据ID取模分片&#xff0c;在大数据存储的时候常用到&#xff0c; 以下是取模代码&#xff1a; public static void main(String[] args) {//取模方法一for (int i 0; i < 10000; i) {//取hashString key String.valueOf(i);long value Long.valueOf(key.hashCode());…

Eclipse ssh远程连接

通常服务一般都部署在Linux或者Unix环境下&#xff0c;并且通常都是基于命令行非视图化的操作&#xff0c; 那么连接这个服务机器就的使用相应的ssh连接工具 其实常用的开发工具Eclipse或者IntelliJ IDEA都自带有ssh连接工具&#xff0c;这个工具视图叫&#xff1a;terminal 以…