引用静态方法

java 复制代码
import java.util.Arrays;
import java.util.Comparator;

public class demo1 {//引用
    public static void main(String[] args) {
        Integer []arr={1,2,4,3,8,6};
        //匿名内部类
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;
            }
        });
        System.out.println(Arrays.toString(arr));
        System.out.println("=============");
        //lambda表达式
        Integer []arr1={1,2,4,3,9,6};
        Arrays.sort(arr1, (o1, o2)-> o1-o2);
        System.out.println(Arrays.toString(arr1));
        //引用
        Integer []arr2={1,8,4,3,9,6};
        Arrays.sort(arr2,demo1::subtraction);//demo1是我们的类名,subtraction是已经存在的方法名

    }
    public static int subtraction(int num1,int num2){
        return num1-num2;
    }
}

这个引用的方法的来源不一定就是我们自己写的,也可以是Java系统里面已经存在的,或者由第三方导入的,也就是别人已经写好的然后我们导入进去使用;

格式: 类名::静态方法

java 复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.function.Function;

public class demo2 {//引用静态方法

    public static void main(String[] args) {
        ArrayList<String>list=new ArrayList<>();
        Collections.addAll(list,"1","2","3","4","5");
        //目标:把list集合里的元素都变为Integer类型
        //法一
        list.stream().map(new Function<String, Integer>() {
            @Override
            public Integer apply(String s){
                int i=Integer.parseInt(s);
                return i;
            }
        }).forEach(s-> System.out.println(s));
        System.out.println("=================");
        //法二:
        list.stream().map(Integer::parseInt).forEach(s-> System.out.println(s));
        //此时Integer表示的是一个类,因为他是引用数据类型,根String那样也是一个类,parseInt是Integer的静态方法,所以用类名::静态方法
    }
}
相关推荐
luj_17682 分钟前
残熵算法:风险缓冲与效率优化的融合
c语言·开发语言·网络·经验分享·算法
源码宝2 分钟前
基于SpringCloud+UniApp的智慧工地云平台整体架构设计与实现
java·人工智能·spring cloud·源码·智慧工地·云平台
Legendary_00820 分钟前
从 DC 圆口到 USB-C PD:LED 照明设备的供电升级逻辑
c语言·开发语言
SilentSamsara22 分钟前
Python 微服务全链路:gRPC + 链路追踪 + 服务网格接入
开发语言·分布式·python·微服务·架构
一只积极向上的小咸鱼23 分钟前
VS Code / Warp MCP 迁移到 Codex MCP 配置总结
开发语言
天文家36 分钟前
深入理解装饰器与适配器:从设计模式到 Spring AOP 的工程实践
java·设计模式
贺国亚41 分钟前
Spring-AI与LangChain4j
java·人工智能·spring
Cloud_Shy61842 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔(第三章 Item 21 - 24)
开发语言·人工智能·笔记·python·迭代器模式
多彩电脑1 小时前
Lua中的元表里的__index和__newindex
开发语言·lua
野生技术架构师1 小时前
2026 Java面试宝典(春招/社招/秋招通用):没有前言,只有答案,直接开背
java·开发语言·面试