public void 原始方法(){
.....
}public void 调用方法(fun){
   .....
   fun();
}调用方法(原始方法);这种问题如何实现?求解!!!

解决方案 »

  1.   

    把你的fun()方法的对象(o)传进来,然后在调用方法里0.fun();
    如果是同一个类中的方法那么可以直接调用啊...
    不用传方法的吧?
      

  2.   

    public void 原始方法(){
    .....
    }public void 调用方法(){
      .....
      原始方法();
    }
      

  3.   

    用反射试试
    public class Test1 { public Object invoke(Method method,Object obj,Object...args){
    try {
    return method.invoke(obj, args);
    } catch (IllegalArgumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (InvocationTargetException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return null;
    }}
      

  4.   

    利用反射中的Method对象就可以了。
      

  5.   

    其实我想实现的应当是这个样子
    public void 原始方法0(){
    .....
    }
    public void 原始方法1(){
    .....
    }
    public void 原始方法2(){
    .....
    }public void 调用方法(String db,fun){
      这里的fun的数据类型应当是什么?
      .....
      fun();
    } 调用方法("...",原始方法0); 
    调用方法("...",原始方法1); 
    调用方法("...",原始方法2); 在Eclipse下面提示错误 需要数据类型 我不知道“原始方法”的数据类型
    Eclipse 给导入了这个类 com.sun.org.apache.xpath.internal.functions.Function; 这个也不正确
      

  6.   

    在java里都是用接口实现回调的(也有叫函数对象的),算是闭包的曲折实现吧。
    public class Caller { public void call(Task task) {
    task.doTask();
    }}public interface Task {
    void doTask();
    }public class Callee implements Task { public void doTask() {
    // TODO Auto-generated method stub
    }}
      

  7.   

    方法是在类中定义的,离开了类就不能执行。所以方法不能像对象一样传递。这在 Java 中是做不到的。
      

  8.   

    如果参数fun是个字符串,只有用反射,java中没有函数指针的概念.也可以考虑传送个对象做为参数,方法里面调用对象的方法.
      

  9.   

    java利用反射可以的,不过传递的不是方法,而是指向方法的对象,可以利用执行方法的对象去执行某个方法。
      

  10.   

    直接把fun改成该方法所在的类不就可以高用fun()方法了吗?
      

  11.   

    在 Java 支持闭包之前,不能将方法作为参数进行传递。
      

  12.   

    传递一个类似于c#中的methodInfo,java中的Method对象,然后通过放射调用。
      

  13.   

    请参照10楼的 回调(call back)
      

  14.   

    用接口可以实现你想要的功能public interface XXXInterface{
       public void 原始方法();
    }public class XXXImplment implements XXXInterface{
       public void 原始方法(){
        .................
      };
    }public void 调用方法(xxxInterface){
      .....
      xxxInterface.原始方法();
    }只要实现了XXXInterface这个接口的类都能传入到你的调用方法。要用面向对象的思想 。 不知道楼主能否明白我说的意思。
      

  15.   


        public void start() {
            调用方法("...", new Function() {            @Override
                public void run() {
                    原始方法0();
                }
            });
            调用方法("...", new Function() {            @Override
                public void run() {
                    原始方法1();
                }
            });
            调用方法("...", new Function() {            @Override
                public void run() {
                    原始方法2();
                }
            });
        }    public void 原始方法0() {
        }    public void 原始方法1() {
        }    public void 原始方法2() {
        }    public void 调用方法(String db, Function fun) {
            fun.run();
        }    public interface Function {        void run();
        }
      

  16.   

    1,用反射,
    2,传对象进去,用callback的思想