invoke 方法最容易理解的方式是什么  ? 例如一个应用:将一个对象的内容拷贝到另一个对象
 通过get方法取到值后,说直接调用invoke方法:sm.invoke(s2,obj)是怎么将s1的内容设置到s2里面的啊
 
 具体过程是怎样的啊 ? 我有点想不通

解决方案 »

  1.   

    a.setNum("ddd")
    对于你的sm.invoke(s2,obj)来说
    sm就是setNum,一个Mehtod对象,
    s2就是a,
    obj就“ddd”跟直接a.setNum("ddd")效果是一样的
      

  2.   

    你要这么想,你调一个方法,无非要知道三个条件,一个是谁调,掉什么方法以及方法的参数,这个就是invoke方法的使用了
      

  3.   

    是这样子的   这一块是Java反射的内容.
      

  4.   

    package test;import java.lang.reflect.Method;public class Test {
    private String value;

    public String getValue() {
    return value;
    } public void setValue(String value) {
    this.value = value;
    } public static void main(String[] a) throws  Exception{

    Class myClass = Class.forName(Test.class.getName());
    Object obj = myClass.newInstance();
    Method method = myClass.getMethod("setValue", String.class);
    method.invoke(obj, "1235");
    System.out.println(((Test)obj).getValue());
    }
    }
      

  5.   

    invoke只是对方法的调用而已,内容的拷贝要看被调方法是怎么实现的.
      

  6.   

    比如现在你有一个类叫User,包含的属性String id,方法setId(String id)然后一个他的一个对象u,调用u.setId("001");其实在内部还是在u这个对象上调用一个名字叫setId的方法并且把参数“001”传给他,u.setId("001");这样的语句这是跟接近人的思考习惯,其实内部调用并不是表面的