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.???; //
}

解决方案 »

  1.   

    很多方法可以实现阿!可以通过添加get.set方法实现,可以通过注解来实现!
      

  2.   

    一般属性都带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);
    }
      

  3.   

    如果属性是public的,那么可以用p.getClass().getField(str)得到这个属性
      

  4.   

    Class cls = p.getClass(); 
    这是什么意思??????????
      

  5.   

    Class cls = p.getClass(); 
    这是什么意思??????????
    _________________________________通过对象来得到这个对象所属的类,再通过反射进行操作