Java 代码
1 > bean 对象
package com.whbs.bean;
?
public class UserBean {
??? private Integer id ;
??? private int age ;
??? private String name ;
??? private String address ;
???
??? public UserBean(){
?????? System. out .println( " 实例化 " );
??? }
???
??? public Integer getId() {
?????? return id ;
??? }
??? public void setId(Integer id) {
?????? this . id = id;
??? }
??? public int getAge() {
?????? return age ;
??? }
??? public void setAge( int age) {
?????? this . age = age;
??? }
??? public String getName() {
?????? return name ;
??? }
??? public void setName(String name) {
?????? this . name = name;
??? }
??? public String getAddress() {
?????? return address ;
??? }
??? public void setAddress(String address) {
?????? this . address = address;
??? }
???
???
???
}
?
2 > 反射测试
?
package com.whbs.test;
?
import java.lang.reflect.Field;
import java.lang.reflect.Method;
?
import com.whbs.bean.UserBean;
?
public class Test1 {
?
??? public static void main(String[] args) throws Exception {
?
??????
?????? /*
?????? ? * 实列化类 方法 1
?????? ? */
?????? //String classPath = "com.whbs.bean.UserBean";
?????? //Class cla = Test1.class.getClassLoader().loadClass(classPath);
?????? //Object ob = cla.newInstance();
??????
?????? /*
?????? ? * 实列化类 方法 2
?????? ? */
?????? UserBean bean = new UserBean();
?????? bean.setId(100);
?????? bean.setAddress( " 武汉 " );
??????
?????? // 得到类对象
?????? Class userCla = (Class) bean.getClass();
??????
?????? /*
?????? ? * 得到类中的所有属性集合
?????? ? */
?????? Field[] fs = userCla.getDeclaredFields ();
?????? for ( int i = 0 ; i < fs. length ; i++){
?????????? Field f = fs[i];
?????????? f.setAccessible( true ); // 设置些属性是可以访问的
?????????? Object val = f.get(bean); // 得到此属性的值 ???
??????
?????????? System. out .println( "name:" +f.getName()+ "/t value = " +val);
??????????
?????????? String type = f.getType().toString(); // 得到此属性的类型
?????????? if (type.endsWith( "String" )) {
????????????? System. out .println(f.getType()+ "/t 是 String" );
????????????? f.set(bean, "12" ) ;?? ???? // 给属性设值
?????????? } else if (type.endsWith( "int" ) || type.endsWith( "Integer" )){
????????????? System. out .println(f.getType()+ "/t 是 int" );
????????????? f.set(bean,12) ;? ???? // 给属性设值
?????????? } else {
????????????? System. out .println(f.getType()+ "/t" );
?????????? }
??????????
?????? }
??????
??????
?????? /*
?????? ? * 得到类中的方法
?????? ? */
?????? Method[] methods = userCla.getMethods();
?????? for ( int i = 0; i < methods. length ; i++){
?????????? Method method = methods[i];
?????????? if (method.getName().startsWith( "get" )){
????????????? System. out .print( "methodName:" +method.getName()+ "/t" );
????????????? System. out .println( "value:" +method.invoke(bean)); // 得到 get 方法的值
?????????? }
?????? }
??? }
?
}