package com.weigu.xiaochuang.reflection;
/**
* 显式声明空的构造函数有时候也是一种很好的习惯。当你要使用反射时,一定不要忘记空的构造。
* 一个对象在new之前,堆里是不会分配内存的。因此这个UserInfo的实例是通过Class的实例得到的
*/
public class UserInfo {
private int userId;
private String name;
private int age;
@Override
public String toString() {
return "UserInfo{" +
"userId=" + userId +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
/**
* 通过Class实例化任意类的对象
*
* @param args
*/
public static void main(String[] args) {
Class<UserInfo> c = UserInfo.class; //获得Class类的实例
UserInfo userInfo = null;
try {
userInfo = c.newInstance(); //通过class类的实例获取UserInfo实例
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
userInfo.setAge(10);
userInfo.setUserId(1);
userInfo.setName("Squee,Spleen and Goblin");
System.out.println(userInfo);
}
}
反射(一)-通过Class实例化任意类的对象
猜你喜欢
转载自blog.csdn.net/wb_zjp283121/article/details/89465072
今日推荐
周排行