关于JAVA取对象中的属性问题(有满意答案高分)

来源:百度知道 编辑:UC知道 时间:2024/09/24 16:39:12
打个比方,有个类A也可能是B,里面有很多的属性比如:username,password,和对应的他们的get和set方法.现在底层我用一个object实类化这个A类或者B类(因为他的父类不确定,所以要用Object),这个时候,我怎么的通过object类获得A或者B类中的属性(比如:username,password等).我在更新个框架的时候要用到.非常的感谢
一楼的兄弟还没看懂我的意思.因为在Object中,我是不知道他的父类是A还是B的,我这里写个方法;
Test s =new Test(new A(),request);
下面实现的方法是:
public Test(Object a,HttpRequest request){

在这里取出a中的关于A的属性
}
呵呵,他的父类不一定是A和B,他的父类是一个不确定的VO,同时我要的只是他的属性的名称,比如username,这样的东西

//java反射机制
Class clazz = object.getClass();
System.out.println("类名"+clazz.getName());
Field[] fields = clazz.getFields();//所有属性
System.out.println();
System.out.println("属性名:");
for (Field field : fields) {
System.out.println(field.getName());
}
System.out.println("方法名:");
System.out.println();
Method[] methods = clazz.getMethods();//所有方法
for (Method method : methods) {
System.out.println(method.getName());
}

if (obj instanceof A){
A a = (A)obj;
}
else if(obj instanceof B){
B b = (B)obj;
}

Object a = new A();
(A)a.getPassword();

答案补充:
if(a instanceof A){ (A)a.getPassword(); }
else if(a instanceof B) {(B)a.getPassword(); }