gpt4 book ai didi

java - 如何在 Java 中将方法作为参数传递?

转载 作者:IT老高 更新时间:2023-10-28 20:55:49 26 4
gpt4 key购买 nike

Possible Duplicate:
Java Pass Method as Parameter

是否可以在 Java 中将方法作为参数传递?如果我不能,下面的方法最好的做法是什么,而不必重复代码。

public void enterUserInput(javax.swing.JTextField inputField, javax.swing.JTextField   outputField, method rangeChecking){

String input;
double output;
input = inputField.getText();
output = Double.parseDouble(input);
if(rangeChecking(output)){
outputField.setText(input);
inputField.setText(null);
}

我将从不同的类调用 rangeChecking 方法,每次调用 enterUserInput 时 rangeChecking 方法都会不同

最佳答案

您应该使用 interface去做吧。

您将声明所需函数的接口(interface)传递给方法,然后调用所需的方法。将调用的具体方法是由实现类实现的方法。

它被称为 strategy design pattern .

代码示例:

public static interface Foo { //this is the interface declaration
public void print();
}
public static class Bar implements Foo { //Bar is an implementing class
public void print() {
System.out.println("Bar");
}

}
public static void test(Foo foo) { //the method accepts an interface
foo.print(); //and invokes it, the implementing class' print() will be invoked.
}
public static void main(String... args) throws Exception {
test(new Bar()); //invoke test() with the class implementing the interface
}

关于java - 如何在 Java 中将方法作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com