`
hecal
  • 浏览: 79559 次
社区版块
存档分类
最新评论

JavaBean属性值动态设置

    博客分类:
  • java
 
阅读更多

今天我也来写写JavaBean属性值动态设置。

 

设计了一类,类里面有上百个属性,如果一个一个设置的话,那就要上百个if判断太累了,难道没有什么好的方法循环判断吗?

 

于是从网上搜了搜,果然有哦,不过说的是在jsp里通过Property.setProperty,不是我需要的,接着搜。半天没有结果,不过还好有一个同学在网上发了一个问题说是两个bean拷贝的时候有问题。。。。

 

看看,太好了里面竟然有bean的字段设置。god~~

 

改了改测试一下,竟然可以哦~~

 

下面代码呈上~~

 

public class TestBean {
	public String name;
	public int age;
	public 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;
	}
}

 

import java.lang.reflect.Field;
import java.util.ArrayList;

public class TestReflet {

	public static void main(String[] args) {
		try {
			TestBean bean = new TestBean();
			Class clas = Class.forName(bean.getClass().getName());

			if (!(clas.isInstance(bean))) {
				System.out.println("传入的java实例与配置的java对象类型不符!");
				return;
			}
			Field[] fields = clas.getDeclaredFields();
			ArrayList<String> fieldsNameList = new ArrayList<String>();
			int i = 0;
			for (Field field : fields) {
				fieldsNameList.add(field.getName());
			}
			
			setBeanValue(bean, fields, fieldsNameList, "age", 20);
			setBeanValue(bean, fields, fieldsNameList, "name", "Shane");
			setBeanValue(bean, fields, fieldsNameList, "sex", "boy");

			System.out.println("Age:" + bean.getAge() + "\n" + "Name:"
					+ bean.getName() + "\n" + "Sex:" + bean.getSex() + "\n");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void setBeanValue(Object destObj, Field[] fields,
			ArrayList<String> fieldsNameList, String strKey, Object objValue)
			throws IllegalArgumentException, IllegalAccessException {
		int intIndex = fieldsNameList.indexOf(strKey);
		if (intIndex >= 0) {
			fields[intIndex].set(destObj, objValue);
		}
	}
}

 

0
3
分享到:
评论

相关推荐

    javabean属性资料

    Constrained属性比Bound属性更进一步,它不仅会在属性值改变时通知其他对象,而且在值被设置之前还会进行验证。如果新值不符合预设的约束条件,那么属性的值不会改变,并且会触发一个`VetoableChangeEvent`。这允许...

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

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

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

    - **访问和修改属性值**:使用`Field`的`get(Object obj)`和`set(Object obj, Object value)`方法可以读取和设置Bean实例的属性值。 - **遍历getter和setter**:`Class.getMethod(String name, Class&lt;?&gt;... ...

    JavaBean 属性

    这种机制使得 JavaBean 在属性值改变时能够自动地通知到其他组件。为了实现这一功能,需要使用 `PropertyChangeSupport` 类来管理属性值变化事件。 ```java public class Alden3 extends Canvas { private String ...

    根据javabean动态获取字段以及中文名称

    javabean中有100个属性字段,想要在前端页面获取这100个字段和字段对应的中文名称,如用户名称(username),密码(password),可以动态的获取到中文名称和属性字段,并返回前端页面,本例只实现动态解析功能

    JavaBean示例

    2. 在JSP页面中通过EL(表达式语言)和JSTL标签访问JavaBean属性。 3. 学习如何在Spring框架中使用JavaBean作为模型对象。 4. 实现属性变更监听器(PropertyChangeListener),以响应属性值的改变。 这个"JavaBean...

    javaBean简介.doc

    `&lt;jsp:useBean&gt;` 实例化或查找JavaBean,`&lt;jsp:setProperty&gt;` 设置属性值,`&lt;jsp:getProperty&gt;` 获取属性值。例如: ```jsp ``` 在现代Web开发中,虽然JavaBean的概念仍然适用,但常常被更高级的框架如...

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

    在上面的代码中,getName() 方法是 getter 方法,用于获取 name 属性的值,而 setName() 方法是 setter 方法,用于设置 name 属性的值。 三、JavaBean 属性命名规范的重要性 JavaBean 属性命名规范非常重要,因为...

    前台字符串赋值给JavaBean属性自动类型转换

    其中,`BeanUtils.copyProperties()`方法是最常用的,它能将一个对象的所有属性值复制到另一个对象中,包括对基本类型和复杂类型的转换。例如,如果我们有一个前端传来的JSON字符串,可以先将其转化为Java对象,然后...

    javabean教程[2]

    `&lt;jsp:setProperty&gt;`用于设置JavaBean的属性值。它通常与`&lt;jsp:useBean&gt;`配合使用,以便在JSP页面中为JavaBean的属性赋值。例如: ```jsp ``` 这里的`name`属性是JavaBean的ID,`property`是需要设置的属性名,`...

    javabean概念和使用

    * 可以将功能、处理、值、数据库访问和其他任何可以用 java 代码创造的对象进行打包,并且其他的开发者可以通过内部的 JSP 页面、Servlet、其他 JavaBean、applet 程序或者应用来使用这些对象。 * 提供了一种...

    JSP课件-javabean的使用教程

    2. **初始化JavaBean**:如果JavaBean需要初始化数据,可以在`&lt;jsp:setProperty&gt;`标签中设置属性值: ```jsp *" /&gt; ``` `property="*"`表示将请求参数映射到JavaBean的所有公共属性。 3. **访问JavaBean**:...

    JavaBean组件程序设计

    `jsp:useBean`指令用于实例化或查找页面作用域内的JavaBean,`jsp:setProperty`用于设置JavaBean的属性值,`jsp:getProperty`则用于获取JavaBean的属性值。例如: ```jsp ``` 这里的`id`属性指定了JavaBean在...

    JavaBean_Javabean增删改查_audiencevu9_

    - 在Servlet中,用户提交的表单数据可以通过request对象获取,然后使用new User()创建一个新的User对象,并用setter方法设置属性值。 - 调用User类的save()方法(如果存在),将新对象存储到数据库中。 - 最后,...

    JavaBean在JSP中的典型应用

    2. **设置和获取JavaBean属性**: - 设置JavaBean的属性值通常使用`&lt;jsp:setProperty&gt;`标签,例如: ```jsp ``` - 这里,`name`属性对应于JavaBean的引用名,`property`属性指定了要设置的属性名,`value`属性...

    JavaBean技术

    除了`&lt;jsp:useBean&gt;`之外,还可以使用`&lt;jsp:getProperty&gt;`和`&lt;jsp:setProperty&gt;`来获取和设置JavaBean的属性值。 - `&lt;jsp:getProperty&gt;`用于获取JavaBean的属性值。 - `&lt;jsp:setProperty&gt;`用于设置JavaBean的属性值...

    javabean源码

    - **属性赋值和获取**:通过调用setter和getter方法设置和获取属性值。 - **XML配置**:在Spring等框架中,JavaBean可以通过XML配置文件进行依赖注入。 - **注解配置**:在现代Java应用中,使用注解(如@...

    javabean留言小项目

    - **实例化和赋值**:在代码中创建JavaBean实例,并通过getter和setter设置属性值。 - **数据交换**:在Servlet或Controller中接收请求参数,填充JavaBean,然后将JavaBean传递给视图层(如JSP)或后续业务处理。 ...

    JavaBean课件.rar

    每个属性都有对应的getter和setter方法,用于访问和修改属性值。 3. **封装**:JavaBean的属性通过getter和setter方法进行封装,以保护内部状态。 4. **序列化**:JavaBean通常实现Serializable接口,允许对象的状态...

Global site tag (gtag.js) - Google Analytics