请问
我有两个类 分别是 test1,test2test1中有3个属性
private int A1;
private int A2;
private int A3;test1中有6个方法
public void setA1(int val){
A1 = val;
}
public int getA1(){
return A1;
}public void setA2(int val){
A2 = val;
}
public int getA2(){
return A2;
}public void setA3(int val){
A3 = val;
}
public int getA3(){
return A3;
}test2 中有3个方法
public int getResult1(){
return 1;
}public int getResult2(){
return 2;
}public int getResult3(){
return 3;
}
请问我怎么实现在test1和test2都已经new成 o1和o2后,如何循环的来设置值,意思如下
for(int i = 1; i <= 3; i++) {
o1.setAi(o2.getResulti);
}而不需要 一个一个的写,请问如何通过 Class和Method类的方法来实现
我有两个类 分别是 test1,test2test1中有3个属性
private int A1;
private int A2;
private int A3;test1中有6个方法
public void setA1(int val){
A1 = val;
}
public int getA1(){
return A1;
}public void setA2(int val){
A2 = val;
}
public int getA2(){
return A2;
}public void setA3(int val){
A3 = val;
}
public int getA3(){
return A3;
}test2 中有3个方法
public int getResult1(){
return 1;
}public int getResult2(){
return 2;
}public int getResult3(){
return 3;
}
请问我怎么实现在test1和test2都已经new成 o1和o2后,如何循环的来设置值,意思如下
for(int i = 1; i <= 3; i++) {
o1.setAi(o2.getResulti);
}而不需要 一个一个的写,请问如何通过 Class和Method类的方法来实现
我自己粗写了一下 没有编译过,不知道对不对?
public void setActiveFormData(Object o1,Object o2,String className,String setMethodNamePrev,String getMethodNamePrev,int loopNum) {
Class c1 = o1.getClass();
Method[] setMethodArr = c1.getMethods();
Class c2 = o2.getClass();
Method[] getMethodArr = c2.getMethods();
int len1 = setMethodArr.length;
int len2 = getMethodArr.length;
for(int i = 0; i < loopNum; i++) {
for( int j = 0; j < len1; j++) {
if(setMethodArr[j].getName().equals(setMethodNamePrev + i)) {
for( int k = 0; j < len2; k++) {
if(m[k].getName().equals(getMethodNamePrev + i)) {
////////// // 这儿的的参数如何传进去呢???? o1.setMethodArr[j](o2.methodArr[k]); }
break;
}
}
}
}
}
{
public TestMethod()
{
}
public void print1()
{
System.out.println("aaa");
}
public static void main(String[] args) throws Exception
{
TestMethod test = new TestMethod();
Method method = null;
int i =1;
method = test.getClass().getMethod("print" + i, null);
method.invoke(test,null);
}
}
====================================================
在我上面的代码里面的
method.invoke(test,null);改为method.invoke(test,new Object[]{param1,param2...});