怎么获取获取对象属性?
class Person()
{
int age = 10;
}
public static void main(String args[])
{
String str = "age";
/*
怎么根据str来获取class Person的对象的age属性的值
*/
Person p = new Person();
p.age;
p.str; //error
p.???; //
}
------解决方案--------------------很多方法可以实现阿!可以通过添加get.set方法实现,可以通过注解来实现!
------解决方案--------------------如果是全局变量可以用反射试试
------解决方案--------------------一般属性都带get和set方法,所以
class Person()
{
private int age = 10;
public void setAge(int a)
{
this.age = a;
}
public int getAge()
{
return this.age;
}
}
然后楼主是想要根据str的值来确定属性名字,然后得到结果。
可以变成根据属性名字,得到get方法,然后调用这个方法得到结果。
public static void main(String args[])
{
Person p = new Person();
String str = "age";
// 构造方法名
String methodName = "get" + str.substring(0, 1).toUpperCase() + str.substring(1);
// 得到方法
Class cls = p.getClass();
Method m = cls.getMethod(methodName, null);
// 调用方法得到结果
m.invoke(p, null);
}
------解决方案--------------------三楼说的漂亮 学习了
------解决方案--------------------Class cls = p.getClass();
这是什么意思??????????
_________________________________
通过对象来得到这个对象所属的类,再通过反射进行操作