package com.test;
/**
* 文件类
* @author chinaxxren
*
*/
public class Document {
private String name;
public Document(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.test;
/**
* 用户类
* @author chinaxxren
*
*/
public class User {
private String username;
private String password;
private Document document1;
private Document document2;
private Document document3;
private Document document4;
private Document document5;
public Document getDocument1() {
return document1;
}
public void setDocument1(Document document1) {
this.document1 = document1;
}
public Document getDocument2() {
return document2;
}
public void setDocument2(Document document2) {
this.document2 = document2;
}
public Document getDocument3() {
return document3;
}
public void setDocument3(Document document3) {
this.document3 = document3;
}
public Document getDocument4() {
return document4;
}
public void setDocument4(Document document4) {
this.document4 = document4;
}
public Document getDocument5() {
return document5;
}
public void setDocument5(Document document5) {
this.document5 = document5;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package com.test;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
/**
* JavaBean属性反射
* @author admin
*
*/
public class Test {
public static void main(String[] args) throws Exception,
NoSuchMethodException {
Map<String, Document> map = new HashMap<String, Document>();
map.put("document1", new Document("A"));
map.put("document2", new Document("B"));
map.put("document3", new Document("C"));
map.put("document4", new Document("D"));
map.put("document5", new Document("E"));
User documents = new User();
Class<?> cl = documents.getClass();
Method[] methods = cl.getMethods();
//设置set方法
for (Method method : methods) {
String methodName = method.getName();
if (!methodName.startsWith("set")) {
continue;
}
String name = methodName.toLowerCase();
String key = name.substring(3);
Document document = map.get(key);
method.invoke(documents, document);
}
//get方法
for (Method method : methods) {
String methodName = method.getName();
if (!methodName.startsWith("get") || "getClass".equals(methodName)) {
continue;
}
Object obj = method.invoke(documents);
Document document = (Document) obj;
System.out.println(document.getName());
}
}
}
输出结果:
A
B
C
D
E