在 java 函数可以用函数接口作为回调。具体步骤包括:创建函数接口:它是一个只包含单个抽象方法的接口。使用函数接口作为方法的参数:方法接受函数接口实例,并使用它来处理数据。创建函数接口实例:匿名类或 lambda 创建表达式。传输回调:将创建的函数接口实例作为参数传输给接受回调的方法。
如何在 Java 中将函数作为回调?
回调是一种允许函数将控制权返还给调用人的设计模式,并在特定事件发生时收到通知。在 Java 可用于回调的函数称为函数式接口,它是一种只包含单一抽象方法的接口。
创建函数接口
立即学习“Java免费学习笔记(深入);
点击下载“修理打印机驱动器”;
首先,需要创建一个函数接口来表示回调。例如,以下接口表示接受 String 对象并返回 boolean 值的回调:
@FunctionalInterface public interface StringPredicate { boolean test(String str); }
将函数接口作为参数
函数接口一旦创建,就可以作为方法的参数。例如,以下方法被接受 StringPredicate 以实例为参数,用它来筛选字符串列表:
public static List<String> filterStrings(List<String> strings, StringPredicate predicate) { List<String> filteredStrings = new ArrayList<>(); for (String str : strings) { if (predicate.test(str)) { filteredStrings.add(str); } } return filteredStrings; }
创建函数接口实例
要使用函数接口作为回调,需要创建一个例子。对于匿名类别,可使用以下语法:
StringPredicate predicate = new StringPredicate() { @Override public boolean test(String str) { return str.startsWith("J"); } };
对于 lambda 表达式,语法如下:
StringPredicate predicate = (str) -> str.startsWith("J");
传递回调
创建函数接口实例后,可以将其作为参数传递给接受回调的方法:
List<String> jStrings = filterStrings(strings, predicate);
实战案例
下面是一个实战案例,演示如何使用函数作为实战案例 Java 中的回调:
import java.util.ArrayList; import java.util.List; public class CallbackExample { public static void main(String[] args) { // 创建字符串列表 Liststrings = new ArrayList<>(); strings.add("Java"); strings.add("Python"); strings.add("C++"); // 创建一个函数接口实例(lambda表达式) StringPredicate predicate = (str) -> str.startsWith("J"); // 使用回调筛选列表 List filteredStrings = filterStrings(strings, predicate); // 打印结果 for (String str : filteredStrings) { System.out.println(str); } } public static List filterStrings(List strings, StringPredicate predicate) { List filteredStrings = new ArrayList<>(); for (String str : strings) { if (predicate.test(str)) { filteredStrings.add(str); } } return filteredStrings; } }
结果:
Java
以上是如何将函数用作函数的 Java 回调?详情请关注图灵教育的其他相关文章!