public class Test {
public static void main(String[] args) throws Exception{
//Properties继承Map接口
Properties properties = new Properties();
properties.load(new InputStreamReader(new FileInputStream("student.properties"),"GBK"));
//获取Class对象
Class<Student> studentClass = Student.class;
//获取构造器创建对象
Student student = studentClass.getConstructor().newInstance();
//获取Student类的所有属性
Field[] declaredFields = studentClass.getDeclaredFields();
for (Field declaredField : declaredFields) {
//设置私有属性强制注入
declaredField.setAccessible(true);
//根据properties对象根据键名获取键值
String value = properties.getProperty(declaredField.getName());
//为对象设置值
if (declaredField.getType() == int.class) {
declaredField.set(student,Integer.parseInt(value));
}else if(declaredField.getType() == double.class){
declaredField.set(student,Double.parseDouble(value));
}else{
declaredField.set(student, value);
}
}
System.out.println("修改后的student = " + student);
}
}
student.properties文件
id=1
name=张景山
age=100
Student类
public class Student {
private int id;
private String name;
private int age;
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public Student(String name) {
this.name = name;
}
public Student() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "\n" + "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}' + "\n";
}
@Override
public boolean equals(Object o) {
if (this == o) {return true;}
if (o == null || getClass() != o.getClass()) {return false;}
Student student = (Student) o;
if (id != student.id) {return false;}
if (age != student.age) {return false;}
return name != null ? name.equals(student.name) : student.name == null;
}
@Override
public int hashCode() {
int result = id;
result = 31 * result + (name != null ? name.hashCode() : 0);
result = 31 * result + age;
return result;
}
/*方法*/
public void method1(String string) {
System.out.println(string);
}
public void method2(String string,int i) {
System.out.println(string+i);
}
public void method3(String string,Integer integer,String s) {
System.out.println(string+integer+s);
}
}
网友评论