已经有类A和类B,而且其中有几个名字相同成员变量以及get,set的方法,如其中的test的及其get\set方法;问题是,在另外的一个类中,如何用同一段代码调用这不同对象中的名字相同的方法?值得注意的是,下面的代码只是打个比方,而实际中,这两个类中有很多名字相同的方法,而且都要在Test中调用,怎么可以节省代码?public class A {
private int a = 0; private String test = "a"; public int getA() {
return a;
} public void setA(int a) {
this.a = a;
} public String getTest() {
return test;
} public void setTest(String test) {
this.test = test;
}
}public class B { private int b = 0; private String test = "b"; public int getB() {
return b;
} public void setB(int b) {
this.b = b;
} public String getTest() {
return test;
} public void setTest(String test) {
this.test = test;
}
}
public class Test { public static void main(String[] args) {

Object obj = null;
// 怎么样写可以直接调用这些名字相同的方法?
System.out.println(obj.getTest());
}
}

解决方案 »

  1.   

    如果有很多类里都有这个方法的话,你可以采用反射了,不同的类你只要改 className 就可以了,甚至也还可以把它配在属性文件或 XML 文件中。String className = "test.A";
    Class c = Class.forName(className);
    Method m = c.getMethod("getTest", new Class[0]);
    Object b = m.invoke(c.newInstance(), new Object[0]);
    System.out.println(b.toString());不过这样你会损失些效率,采用反射会慢些的,
      

  2.   

    OK,谢谢bao110908(bao)(bao)(讨厌蟑螂)