代码之家  ›  专栏  ›  技术社区  ›  Gandalf StormCrow

如何使用反射API对对象调用方法?

  •  2
  • Gandalf StormCrow  · 技术社区  · 14 年前

    如何使用Java反射调用已经存在的对象上的方法(例如,对象类内的SETER)?

    4 回复  |  直到 14 年前
        1
  •  3
  •   Martijn Courteaux    14 年前

    以下是一种方法:

    Object yourObject = ...;
    Class clazz = yourObject.getClass();
    Method setter = clazz.getMethod("setString", String.class); // You need to specify the parameter types
    Object[] params = new Object[]{"New String"};
    setter.invoke(this, params); // 'this' represents the class from were you calling that method.
    // If you have a static method you can pass 'null' instead.
    
        2
  •  3
  •   thelost    14 年前

    你有一个很好的教程 HERE .

        3
  •  1
  •   Devon_C_Miller    14 年前
        4
  •  0
  •   chris    14 年前

    你可以这样做,

    Class cls = obj.getClass();
    Method m = cls.getMethod("yourMethod", String.class); // assuming there is a method of signature yourMethod(String x);
    m.invoke(obj, "strValue");