首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java 里边能把method name 作为另外一个method 的参数吗

2012-10-14 
java 里面能把method name 作为另外一个method 的参数吗?比如把 method1 作为 method2 的参数. 可以吗? 如

java 里面能把method name 作为另外一个method 的参数吗?
比如把 method1 作为 method2 的参数. 可以吗? 如何弄?

必须要是abstract method吗?

谢谢

[解决办法]
如果你的method2有返回值,并且和method1的参数类型一致,就可以method1(method2),这么写..
但是在定义方法的时候应该不能把method2作为参数,没有具体了解过!
[解决办法]
我很好奇Method的定义。也很想知道怎样做的好处是什么。求解!谢谢
[解决办法]

探讨

找到一个例子,但是没大看懂:
Java code
public void setAllComponents(Component[] myComponentArray, Method myMethod) {
for (Component leaf : myComponentArray) {
if (leaf instanceof Container) { //recur……

[解决办法]
啊是委托呀.
[解决办法]
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 还不支持这类语法,呵呵。

热点排行