可能重复:
Java Pass方法作为参数
是否可以在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);
}
Run Code Online (Sandbox Code Playgroud)
我将从不同的类调用rangeChecking方法,每次调用enterUserInput时,rangeChecking方法都会有所不同
那么如何将函数作为参数传递给另一个函数,例如我想传递这个函数:
public void testFunkcija(){
Sesija.forceNalog(reg.getText().toString(), num);
}
Run Code Online (Sandbox Code Playgroud)
在这:
public static void dialogUpozorenjaTest(String poruka, Context context, int ikona, final Method func){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
alertDialogBuilder.setTitle("Stanje...");
alertDialogBuilder
.setMessage(poruka)
.setIcon(ikona)
.setCancelable(true)
.setPositiveButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
//here
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
Run Code Online (Sandbox Code Playgroud) 在Java中:将方法从一个对象传递到另一个对象的最佳方法是什么,以便以后第二个对象可以调用它?
我来自一个ActionScript背景,它很容易传递对方法的引用,因为它传递对变量的引用,但这在Java中似乎要困难得多.我发现的前几个链接说不可能(并且它可能在发布时),但后来我找到了http://www.javacamp.org/javavscsharp/delegate.html详细说明了这一点可以完成.
我使用Javacamp的例子的问题是基于字符串的方法引用.方法一直被重命名,一个字符串引用只会在您实际运行该函数运行时而不是为正确的显式链接编译时间时进行投诉.
有没有办法用你希望其他类执行的方法的正确显式链接来做到这一点?
我希望完成的模型:
编辑:要清楚我不是在寻找静态方法解决方案,因为这需要我的确认活动来保存许多逻辑行,以便调用静态方法.确认活动将在我的应用程序中使用:简单的"您确定要X吗?" - 是 - 否,如果是,则执行X.
我目前正在考虑实现onActivityResult来避免这个问题,但这比我喜欢的这类问题更具逻辑性.