返回

Java:Java 8 函数式接口FunctionalInterface

发布时间:2022-12-10 18:36:16 280
# html# java# java# git# github

文档

  • https://www.runoob.com/java/java8-functional-interfaces.html

定义函数式接口

package com.github.mouday.demo;

/**
 * 定义一个函数式接口
 */
@FunctionalInterface
public interface GreetingService {
    void sayMessage(String message);
}

实现接口

package com.github.mouday.demo;


public class Demo {
    public static void main(String[] args) {
    
        // 使用Lambda表达式来表示该接口的一个实现
        GreetingService greetingService = message -> System.out.println("hello: " + message);

        greetingService.sayMessage("Tom");
        // hello: Tom

    }
}

Java8提供的 Predicate接口定义

@FunctionalInterface
public interface Predicate {
    boolean test(T t);
}

Predicate接口使用

package com.github.mouday.demo;

import java.util.*;
import java.util.function.Predicate;

public class Demo {
    public static void main(String[] args) {

        List list = Arrays.asList(1, 2, 3, 4, 5, 6);

        // 输出所有值
        eval(list, o -> true);
        // 1 2 3 4 5 6

        // 输出所有偶数值
        eval(list, o -> o % 2 == 0);
        // 2 4 6

        // 输出所有大于3的数值
        eval(list, o -> o > 3);
        // 4 5 6 
    }

    public static void eval(List list, Predicate predicate) {
        for (Integer i : list) {
            if (predicate.test(i)) {
                System.out.printf("%d ", i);
            }
        }

        System.out.println();
    }
}

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
RocketMQ源码解析-topic创建机制 2022-12-10 18:11:02