C++里有函数指针,然后用指针数组实现。
不知道JAVA里如何实现。

解决方案 »

  1.   

    C#里用委托
    JAVA里貌似是只能用曲线救国了
      

  2.   

    java用反射可以得到一个对象的方法数组。。楼主可以试试
      

  3.   

    做过c++的总是把c++的思维带到java中搞过oracle的总是喜欢把oracle的思维带到db2
      

  4.   

    函数数组?在java中有意义吗?java没有独立的方法,也就不存在独立方法的地址,要么类方法,要么实例方法
      

  5.   

    单方法的接口,你这个例子里可以这样
    interface Operator {
    public int compute(int op1, int op2);
    }class Add implements Operator {
    public int compute(int op1, int op2) {
    return op1 + op2;
    }
    }...Operator[] ops;...for(Operator op : ops) {
    ...
    z = op.compute(x, y);
    ...
    }
      

  6.   

    1 Think different,就好象学英语,还有考英语听力的时候,千万别夹杂进中文一样
    2 就事论事,类似你的穷举法import javax.script.ScriptEngine;
    import javax.script.ScriptEngineManager;public class Test {  public static void main(String[] args) throws Exception {
        String[] operators = new String[] {
            "+", "-", "*", "/"
        };
        int[] numbers = new int[] {
            1, 2, 3, 4
        };
        for (int i = 0; i < operators.length; i++) {
          for (int j = 0; j < operators.length; j++) {
            for (int k = 0; k < operators.length; k++) {
              String script = String.format("%d %s %d %s %d %s %d",
                                            numbers[0],
                                            operators[i],
                                            numbers[1],
                                            operators[j],
                                            numbers[2],
                                            operators[k],
                                            numbers[3]);
              if (eval(script) == 24) {
                System.out.println(script);
                return;
              }
            }
          }
        }
        System.err.println("Oooops!");
      }  static final ScriptEngine engine;
      static {
        ScriptEngineManager mgr = new ScriptEngineManager();
        engine = mgr.getEngineByExtension("js");
      }  static double eval(String script) throws Exception {
        double doubleValue = ((Number) engine.eval(script)).doubleValue();
        return doubleValue;
      }
    }
      

  7.   

    上面只是举个例子(没写全,数字没排列位置),实际可以很多通融的方法。switch-case也可以,ls的接口也可以