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());
}
}