java invoke的用法. 获取一个对象的所有get方法。再用invoke到另一个对象的set方法中,怎么写。
1个回答
展开全部
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Xx {
/**
* @param args
*/
public static void main(String[] args) {
//所有public方法
Method[] ms = A.class.getMethods();
for (int i = 0; i < ms.length; i++) {
if(ms[i].getName().startsWith("get"))
//get方法
;
}
try {
//set方法
Method setMethod = A.class.getMethod("setXxx", Object.class);
//set值,根据具体参数类型来,可多个
Object setValue = new Object();
setMethod.invoke(new A(), setValue);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} 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();
}
}
}
class A {
}
import java.lang.reflect.Method;
public class Xx {
/**
* @param args
*/
public static void main(String[] args) {
//所有public方法
Method[] ms = A.class.getMethods();
for (int i = 0; i < ms.length; i++) {
if(ms[i].getName().startsWith("get"))
//get方法
;
}
try {
//set方法
Method setMethod = A.class.getMethod("setXxx", Object.class);
//set值,根据具体参数类型来,可多个
Object setValue = new Object();
setMethod.invoke(new A(), setValue);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} 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();
}
}
}
class A {
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询