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();
}
}
文章来源: https://blog.51cto.com/mouday/5897409
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报