`
haoran_10
  • 浏览: 442544 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java Bean的反射

    博客分类:
  • java
阅读更多

直接上代码。

 

package com.test.bean;

public class Person {
	private String name;
	private int age;
	private String sex;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
	
}
package com.test.bean;
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

import org.apache.commons.beanutils.BeanUtils;

public class BeanMain {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		Class<?> beanClass = Class.forName("com.test.bean.Person");
		Object obj = beanClass.newInstance();

		// 第一种方法
		String propertyName = "age";
		PropertyDescriptor pd = new PropertyDescriptor(propertyName, beanClass);// 按照属性名称得到属性相关类
		Method writer = pd.getWriteMethod();// 得到写的方法
		Method reader = pd.getReadMethod();// 得到读的方法
		writer.invoke(obj, 22);// 写方法操作
		Object age =  reader.invoke(obj);// 读方法操作
		System.out.println(age);

		// 第二种方法

		BeanInfo beanInfo = Introspector.getBeanInfo(beanClass);
		PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
		for (PropertyDescriptor pd1 : pds) {
			// System.out.println(pd1.getName());
			if (pd1.getName().equals("name")) {
				writer = pd1.getWriteMethod();// 得到写的方法
				reader = pd1.getReadMethod();// 得到读的方法
				writer.invoke(obj,"haoran_10");// 写方法操作
				Object name =  reader.invoke(obj);// 读方法操作
				System.out.println(name);
				break;
			}
		}
		
		//第三种方法:通过开源jar包,优点:自动转换类型,支持级联操作
		BeanUtils.setProperty(obj, "sex", "man");
		System.out.println(BeanUtils.getProperty(obj, "sex"));
	}

}
1
2
分享到:
评论

相关推荐

    java bean 反射,

    java通过反射,修改操作类......

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    - **反射机制**:遍历Java Bean通常涉及使用Java的反射API。`java.lang.reflect`包中的`Class`、`Field`、`Method`类提供了访问和操作类、字段和方法的能力。 - **获取属性**:通过`Class.getDeclaredFields()`或`...

    java Map转换成bean,利用java反射以及java和bean包

    总之,Java Map到Bean的转换是通过反射和JavaBeans规范实现的,这是Java开发中常用的一种数据转换技巧。理解并熟练运用这些知识,能够帮助我们更高效地处理各种数据结构,提升代码的灵活性。在实际项目中,可以根据...

    通过java反射实现map与bean之间互转

    在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...

    一种面向对象的Java Bean查询方法的实现

    2. **反射机制的运用**:利用Java的反射技术,可以在运行时动态获取Java Bean的字段信息,进而构建出符合当前查询条件的SQL语句。 3. **分离数据操作与业务逻辑**:将数据操作的逻辑(如查询、更新等)从Java Bean中...

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

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

    动态生成Java Bean测试页面

    2. 动态生成原理:解释了如何分析Java Bean的元数据(如反射API),以构建测试页面的模板。这可能涉及到对Java类的字段和方法的遍历,以及生成相应的HTML表单元素。 3. 工具或框架:可能会提及一些常用的工具或框架...

    拷贝JSON对象值进Java Bean对象

    这段代码利用了反射机制,找到Java Bean类中的setter方法,根据JSON中的键值对调用setter方法设置属性值。 另一种常见的方式是使用Gson库,它的使用更加简洁。首先,引入Gson库,然后使用`Gson.fromJson()`方法进行...

    使用Betwixt将XML转为JAVA Bean(内有JAR包)

    Betwixt基于JavaBeans规范,通过反射和注解来实现XML和Java对象之间的映射。它通过分析Java类的结构来生成XML,或者根据XML的结构来创建Java对象实例。在处理相同节点名的情况下,Betwixt允许我们通过属性名和类型来...

    java bean和map之间的互转

    转换Java Bean到Map的过程通常是通过反射机制来实现的。以下是一个简单的示例: ```java import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; public class BeanToMapConverter { ...

    为了高效地将Json对象转化成Java bean对象,传统上我们是在运行是利用反射来实现.zip

    2. **获取Java Bean类信息**:利用反射API,通过`Class.forName()`方法获取Java Bean类的Class对象。这需要知道Java Bean的完整类名。 3. **创建Java Bean实例**:使用反射的`newInstance()`方法创建Java Bean的...

    Java Bean对象和Map相互转换.zip

    你可以遍历Map并使用反射API来设置Bean的属性: ```java MyBean myBean = new MyBean(); for (Object key : beanMap.keySet()) { myBean.getClass().getMethod("set" + key.toString().substring(0, 1)....

    JavaXml及Bean互转

    在Java开发中,XML(eXtensible Markup Language)常被用作数据交换格式,而Bean则代表Java对象。将Java Bean与XML进行互转是常见的需求,这有助于在不同系统间传递数据或者持久化对象状态。本篇将详细介绍两种常用...

    java反射以及复制一个bean的值到另一个bean中。

    在Java编程中,反射(Reflection)是一个强大的工具,它允许我们在运行时检查和操作类、接口、字段和方法。通过反射,我们可以动态地创建对象、访问私有成员、调用私有方法,甚至改变对象的行为。Java反射 API 主要...

    一种面向对象的Java Bean查询方法的实现 (1).pdf

    为了解决这些问题,文章提出了一个名为Persister的类,它利用Java的反射和注解机制,来支持Java Bean的持久化操作。 Persister类的主要目的是将Java Bean中的数据操作(如添加、修改、删除、加载和查询)从Bean中...

    xml和bean 互相转换

    在Java开发中,XML(可扩展标记语言)和Bean之间的互相转换是一项常见的任务,尤其是在处理配置文件、数据交换或者序列化场景中。本篇将详细阐述XML与Bean之间的转换过程,以及相关的Java技术。 首先,XML是一种...

    Java 反射封装 JavaBean

    使用 Java 反射封装 JavaBean &lt;br&gt; 说明:这个程序在没有使用Hiberante时挺有用的 需要一个数据库查询语句 对应的JavaBean的全名(现在是Class,原来Class.getName()) 返回List包含多个JavaBean

    Java的反射机制深度解析

    Java的反射机制是Java语言提供的一种强大的工具,它允许程序在运行时动态地获取类的信息并操作类的对象。反射机制的核心在于Java中的`java.lang.Class`类,它代表了类加载器加载后的类的元数据,包含了类的结构信息...

Global site tag (gtag.js) - Google Analytics