程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java反射得到屬性的值和設置屬性的值

Java反射得到屬性的值和設置屬性的值

編輯:關於JAVA
 

< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

Java代碼 < xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" />

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 方法的值

}

}

}

 

}
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved