public class TestStudent {
public static void main(String[] args) throws Exception {
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生的信息,格式为(姓名:年龄:成绩)");
String s=sc.nextLine();
//取得的属性都用冒号分割,并且保存到String数组中
String[] ss=s.split(":");
//将String类型转换为int类型
int a=Integer.parseInt(ss[1]);
//将String类型转换为Float类型
Float b=Float.parseFloat(ss[2]);
//创建Student类的反射对象
Class cls=Student.class;
//取得构造方法实例化Student类
Constructor con=cls.getConstructor(String.class,int.class,float.class);
//实例化Student
Student student= (Student) con.newInstance(ss[0],a,b);
//取得Student类的所有属性
Field fs[]=cls.getDeclaredFields();
for (Field f:fs) {
//取消私有封装
f.setAccessible(true);
//取得属性的值
System.out.println(f.getName()+"---->"+f.get(student));
}
System.out.println(student.toString());
}
}
本文通过一个具体的Java程序示例介绍了如何使用Java反射机制来创建对象并访问其私有属性。程序首先从用户获取输入,然后利用反射机制实例化一个Student对象,并输出该对象的属性值。
1525

被折叠的 条评论
为什么被折叠?



