`

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
分享到:
评论

相关推荐

    java 基础之JavaBean属性命名规范问题.docx

    ### JavaBean属性命名规范 JavaBean是一种遵循特定编码标准的Java类,主要用于封装数据或表示简单的数据载体。在JavaBean中,属性的命名规范是非常重要的,因为它直接影响到代码的可读性和可维护性,同时也会影响到...

    利用反射实现JavaBean 的自动赋值

    5. **调用setter方法**:通过反射调用setter方法,将转换后的值赋给JavaBean的相应属性。 #### 示例代码解析 在提供的代码片段中,可以看到`ParameterUtil`类的核心方法`setFormBean()`实现了上述逻辑。该方法接受...

    java 根据javaBean反射自定义导出 excel、xml、pdf、csv

    反射机制则是Java语言提供的一种强大的工具,允许程序在运行时动态获取类的信息(如类名、属性、方法等)并进行调用。 首先,让我们详细讲解JavaBean。JavaBean是符合一定规范的Java类,主要特点是:公开的构造函数...

    基于反射机制的JavaBean属性处理工具源码:commons-beanutils

    本项目为Apache Commons子项目——commons-beanutils的核心源码,专注于利用Java反射机制高效处理JavaBean属性。该项目结构丰富,包含331个文件,涵盖295个Java源文件、14个XML文件、5个文本文件等,旨在为Java开发...

    JavaBean与反射

    ### JavaBean与反射:深入解析 #### JavaBean概念与特性 JavaBean,作为Java语言中的一种软件组件架构,被设计为可重用的组件,特别适用于图形用户界面(GUI)开发领域。它不仅简化了GUI应用程序的构建过程,还...

    java反射实现javabean转json实例代码.docx

    JavaBean是一种Java语言编写的标准组件,它遵循一定的编码规范,如:拥有公共无参构造函数、所有属性私有化并提供公共的getter和setter方法等。JavaBean通常用于封装数据,在本案例中,我们将使用JavaBean作为数据...

    通过Java反射机制获取JavaBean对象

    1.通过Java反射机制获取JavaBean对象。 2.通过JavaBean全路径字符串获取JavaBean对象。 3.获取JavaBean注解信息

    JavaBean讲解(上)

    4. 反射机制:JavaBean的属性、事件和方法可以通过反射API动态访问,增强了程序的灵活性。 使用JavaBean的场景: 1. MVC架构:在Model部分,JavaBean用于封装业务逻辑和数据,与View和Controller进行交互。 2. JSP...

    javaBean.rar

    例如,通常我们需要遍历JSON对象的每一个键值对,然后逐个设置到对应的JavaBean属性上,而工具方法通过反射可以自动化这一过程。 6. **性能考虑** 尽管反射提供了解耦和灵活性,但它的性能通常比直接的getter/...

    javabean基础知识

    - **使用get/set方法访问其属性**:JavaBean的属性通常遵循JavaBeans规范,即通过get和set方法来访问和修改。 JavaBean提供了一种封装功能、处理逻辑、值、数据库访问等的能力,使得其他开发者可以通过内部的JSP...

    javabean源码

    - **反射**:在运行时动态地获取类的信息并操作JavaBean。 - **JSP页面**:在Web开发中,JavaBean可以作为模型层,与JSP视图层进行数据交换。 5. **JavaBean在MVC架构中的角色**: 在MVC架构中,JavaBean作为...

    SqlToJavaBean_javabean_根据表结构生成javabean_生成javabean_

    在Java开发中,JavaBean是一种遵循特定规范的Java类,通常用于封装数据并提供相应的getter和setter方法。在数据库操作中,将SQL查询结果映射到Java对象是常见的需求,这时JavaBean的作用就显现出来了。...

    两个javabean的复制(反射)

    把一个javabean里面的属性值复制到另外一个javabean中相同的属性值

    用反射实现向不同简单JavaBean填充值的实现代码

    通过上述步骤,我们可以编写一个通用的工具方法,接受类名、属性名和值作为参数,利用反射填充JavaBean的属性。这样的实现对于处理大量相似对象的初始化或数据绑定场景非常有用,例如在数据持久化、JSON序列化/反...

    JavaBean技术

    3. **无参构造函数**:JavaBean必须有一个公共的无参构造方法,这是为了让反射机制能够正常工作。 4. **公共的get/set方法**:对于私有字段,需要提供公共的getter和setter方法,这些方法通常命名为`getXXX`和`...

    基于标注和反射机制的通用JavaBean持久化工具类.pdf

    - JDK的反射机制允许动态访问对象的属性和方法,而JDK 1.5引入的标注可以为程序元素关联信息,这些信息可以通过反射机制访问。 2. **设计与实现**: - 为了简化JavaBean的持久化过程,文章提出使用Java的标注和...

    javabean一个简单的例子,可直接用

    5. 反射和序列化:JavaBean支持反射API,允许在运行时动态地获取类的信息和调用方法。同时,JavaBean默认实现了Serializable接口,可被序列化和反序列化,方便在网络间传输或持久化存储。 在描述中提到的“可直接用...

    javabean的详解

    2. **设置JavaBean属性**: - 使用`&lt;jsp:setProperty&gt;`标签设置JavaBean的属性值。 ```jsp *"/&gt; ``` - 参数解释: - `name`: 已经实例化的JavaBean的ID。 - `property`: 要设置的属性名称,使用`*`表示设置...

    你可以看到这个类对属性的存取方法(getter and setter method)使用了标准JavaBean命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是推荐的设计,但并不是必须的。Hibernate也可以直接访问这些field,而使用访问方法(accessor method)的好处是提供了重构时的健壮性(robustness)。为了通过反射机制(Reflection)来实例化\

    你可以看到这个类对属性的存取方法(getter and setter method)使用了标准JavaBean命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是推荐的设计,但并不是必须的。Hibernate也可以直接访问...

    Servlet中对获取网页表单数据自动给JavaBean赋值的BeanUtil工具类

    // 使用BeanUtil工具类填充JavaBean属性 BeanUtils.populate(user, paramMap); } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } // 现在,user对象已经被填充了...

Global site tag (gtag.js) - Google Analytics