實體類
package com.beijng.dasenlin.bean;
/**
* 寫一個實體類,
* @author Administrator
*
*/
public class User {
private int id;
private String name;
private int age;
/**
* 無產的構造方法
*/
public User(){
}
/**
* 通過他們來獲取
* @param id
* @param name
* @param age
*/
public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
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;
}
}
反射機制測試類
package com.beijng.dasenlin.reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import javax.swing.SpringLayout.Constraints;
import com.beijng.dasenlin.bean.User;
/**
*
* @author Administrator
*
*/
public class Demo {
public static void main(String[] args) {
String path="com.beijng.dasenlin.bean.User";
try {
Class<User> clazz = (Class<User>)Class.forName(path);
User u = clazz.newInstance();
System.out.println("獲得的執行個體化對象"+u);
//Class clazz = path.getClass();
Constructor [] constructor=clazz.getDeclaredConstructors();
for(Constructor ct:constructor){
System.out.println("所有的構造器"+ct);
}
Constructor c1 = clazz.getConstructor();
System.out.println("獲得的無參構造器"+c1);
Constructor<User>c2 = clazz.getDeclaredConstructor(int.class,String.class,int.class);
User u2=c2.newInstance(,"xiaowan",);
System.out.println(u2.getName());
System.out.println("獲得構造器"+c2);
Field f=clazz.getDeclaredField("name");
f.setAccessible(true);//設定屬性不需要通路了
f.set(u, "xiaoming");
System.out.println(f.get(u));
} catch (Exception e) {
e.printStackTrace();
}
}
}