`

JavaBean属性方法反射

    博客分类:
  • J2SE
阅读更多
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

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics