在 Java 中将方法作为参数传递
本教程介绍在 Java 中将方法作为参数传递。为了帮助你进一步理解此主题,我们提供了示例代码。
从头开始,Java 中没有将方法作为参数传递的概念。但是,我们可以通过使用 Java 8 中的 lambda 函数和方法引用来实现这一点。因此,在本文中,我们将更多地关注这两个主题,将方法作为参数传递。
lambda 函数或 lambda 表达式是 Java 8 中引入的一个概念。它是一种遵循函数风格方法编写函数的简洁方法。由于 Java 和 Java 8 被认为是面向对象的语言,因此它们支持编写代码的函数式方法。
在 Java 中使用 lambda
函数将方法作为参数传递
这是 lambda 的一个简单示例,我们使用它来迭代 ArrayList
元素。请注意,我们将 lambda 函数传递给 Iterable
接口的 forEach()
方法。ArrayList
类实现了 Iterable
接口。
所以这就是我们如何在 Java 中将方法(lambda 函数)作为参数传递:
public class SimpleTesting{
public static void main(String[] args) {
ArrayList<Integer> evens = new ArrayList<Integer>();
evens.add(10);
evens.add(20);
evens.add(30);
evens.add(40);
evens.forEach( (n) -> { System.out.println(n); } ); // passing lambda as a parameter
}
}
输出:
10
20
30
40
将方法作为参数传递给 Java 中的自定义方法
除了内置方法 forEach()
,我们可以将它作为参数传递给自定义方法。在这个例子中,我们创建了一个接口 Doable
,它有一个方法 doSomething()
。在 SimpleTesting
类中,我们有一个调用 doSomething()
方法的方法 show()
。在 main() 方法中,我们创建了一个 lambda 函数并将其传递给 show()
方法。
请注意,这是我们将方法(lambda 函数)作为参数传递给方法的行。
show("Hello", doa); // passing lambda function as parameter
interface Doable{
String doSomething(String str);
}
public class SimpleTesting{
public static void main(String[] args) {
Doable doa = (str)-> str+" Rohan";
show("Hello", doa); // passing lambda function as parameter
}
public static void show(String msg, Doable doa) {
String greeting = doa.doSomething(msg);
System.out.println(greeting);
}
}
输出:
Hello Rohan
使用 Java 中的方法引用将方法作为参数传递
这是另一种可用于将方法作为参数传递给方法的解决方案。它还在 Java 8 版本中与 lambda 函数一起引入。在此示例中,我们使用方法引用概念将 show()
方法作为参数传递给 Thread()
构造函数,该构造函数在运行时执行。在此处查看代码示例的输出:
public class SimpleTesting{
public static void main(String[] args) {
// Passing method reference as a parameter
Thread thread = new Thread(SimpleTesting::show);
thread.start();
}
public static void show() {
System.out.println("My Thread");
}
}
输出:
My Thread
相关文章
在 Java 中扩展 Comparable
发布时间:2023/10/19 浏览次数:96 分类:Java
-
本教程展示了如何在 Java 中清除 StringBuilder 本指南将了解在 Java 中扩展 Comparable 接口。它写成 Comparable
。它是一个由 Java 中的许多类实现的接口。
Java 中的 Predicate 是什么
发布时间:2023/10/19 浏览次数:106 分类:Java
-
本文介绍 Java 8 中的 Predicate 接口。本教程通过 Java 示例介绍 Predicate 接口。Predicate 是 Java 中的一个接口,用作 lambda 表达式或方法引用的目标赋值。
Java 中的 parameter 与 argument
发布时间:2023/10/19 浏览次数:79 分类:Java
-
本文介绍 Java 中 parameter 和 argument 的区别。本教程通过 Java 中的示例介绍 parameter 和 argument 之间的区别。
在 Java 中画一个圆
发布时间:2023/10/19 浏览次数:176 分类:Java
-
本教程介绍如何在 Java 中使用几个函数画圆在本文中,我们将介绍如何使用用于创建 GUI 组件的库 java.awt 和 javax.swing 在 Java 中绘制一个圆。
在 Java 中画一个三角形
发布时间:2023/10/19 浏览次数:124 分类:Java
-
本教程介绍了如何在 Java 中画一个三角形。在本文中,我们将学习如何在 Java 中绘制一个三角形。我们使用 AWT(Abstract Window Component Toolkit),这是最早的 Java 开发包,
用 Java 画一条线
发布时间:2023/10/19 浏览次数:86 分类:Java
-
本文介绍了如何使用 Applet 在 java 中绘制线条。Java 中的 Java.awt.Graphics 类构成了许多此类绘图和图形功能的基础。
Java 中的消息框
发布时间:2023/10/19 浏览次数:146 分类:Java
-
本文介绍如何在 Java 中显示消息框。Java 中的消息框是出现在屏幕上的弹出窗口,用于显示一些消息并等待用户确认。
使用 JProgressBar 类创建 Java 进度条
发布时间:2023/10/19 浏览次数:83 分类:Java
-
本教程演示了如何使用 JProgressBar 类创建 Java 进度条。本教程旨在了解我们如何在 SWING 应用程序中使用 JProgressBar 类创建 Java 进度条。我们还将学习如何根据进度条填充的级别来显示数字和文本