java 里面能把method name 作为另外一个method 的参数吗?
比如把 method1 作为 method2 的参数. 可以吗? 如何弄?
必须要是abstract method吗?
谢谢
------解决方案--------------------如果你的method2有返回值,并且和method1的参数类型一致,就可以method1(method2),这么写..
但是在定义方法的时候应该不能把method2作为参数,没有具体了解过!
------解决方案--------------------我很好奇Method的定义。也很想知道怎样做的好处是什么。求解!谢谢
------解决方案--------------------
------解决方案--------------------啊是委托呀.
------解决方案--------------------Java没有函数指针,这东西很多时候很好用的。
------解决方案--------------------用反射。
public class DemoInvoke {
public void sayHello() {
System.out.println("hello java!");
}
public void foo(String methodName) {
try {
getClass().getDeclaredMethod(methodName).invoke(this);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
DemoInvoke di = new DemoInvoke();
di.foo("sayHello");
}
}
------解决方案--------------------Java code
public class DemoInvoke {
public void sayHello() {
System.out.println("hello java!");
}
public void foo(String methodName) {
try {
getClass().getDeclaredMethod(methodName).invoke(this);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
DemoInvoke di = new DemoInvoke();
di.foo("sayHello");
}
}
------解决方案--------------------
把一个函数作为另一个函数的参数,这种功能称为闭包,目前的 JDK 还不支持这类语法,呵呵。