`
芝加哥09
  • 浏览: 60672 次
社区版块
存档分类
最新评论

运用反射机制实现改变对象的属性值

    博客分类:
  • Java
 
阅读更多

此处运用反射机制实现改变对象的属性值的功能。

以下代码实现功能为:

对一个对象中属性类型为String的字段,如果其值不是为"cloud",则将其改成"cloud"。我觉得实现的功能很简单,但很有指导性的意义。读者慢慢体会吧。

 

ReflectBean代码:

package com.cloud.reflect;

public class ReflectBean {
	private String name;
	private String password;
	private int age;
	
	public ReflectBean(String name, String password) {
		super();
		this.name = name;
		this.password = password;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getPassword() {
		return password;
	}
	
	public void setPassword(String password) {
		this.password = password;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return this.name + ":::" + this.password;
	}
}

 

ReflectTest代码:

package com.cloud.reflect;

import java.lang.reflect.Field;

public class ReflectTest {
	
	public static void main(String[] args) throws Exception {
		ReflectBean reflect = new ReflectBean("chris", "cloud");
		
		changeFieldValue(reflect);
		
		System.out.println(reflect.toString());
	}
	
	public static void changeFieldValue(Object obj) throws Exception {
		Field[] fields = obj.getClass().getDeclaredFields();
		for (Field field : fields) {
			//由于字段是private类型,为了能够访问,进行“暴力”反射设置
			field.setAccessible(true);
			//此处应该用“==”为好,因为字节码只有一份
			if (field.getType() == String.class) {
				String oldStr = (String) field.get(obj);
				if (!"cloud".equals(oldStr)) {
					field.set(obj, "cloud");
				}
			}
		}
	}
}

 

 

 

分享到:
评论

相关推荐

    运用反射得到类中的属性和值

    ### 运用反射得到类中的属性和值 在Java编程语言中,反射是一种强大的机制,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地调用方法或修改字段值。本文将深入探讨如何通过反射来获取一个类中的...

    java反射机制讲解

    Java反射机制让我们能够在运行时获取类的信息,包括类名、属性、方法、构造器等,并能动态地调用方法和修改属性值。这种特性对于那些需要在运行时根据条件执行不同操作或者处理未知类型的场景非常有用。例如,框架如...

    java面试题--反射机制

    ### Java反射机制详解 #### 一、引言 在Java面试中,经常会出现与反射...以上内容不仅解释了Java反射机制的相关知识点,还通过示例代码进行了实践演示,希望能够帮助你在Java面试中更好地理解和运用这一重要特性。

    java反射机制原理

    Java反射机制是Java编程语言中的一个核心特性,...通过深入理解和合理运用反射机制,开发者可以解决许多复杂问题,提高代码的灵活性和可维护性。在实际编程中,我们需要权衡其优势和潜在的缺点,合理选择是否使用反射。

    JAVA的反射机制与动态代理

    它允许程序在不知道类名的情况下创建对象,调用对象的方法,以及访问和修改对象的属性。通过`java.lang.Class`类和相关的API,我们可以: 1. **获取类信息**:通过`Class.forName()`方法可以获取到类的信息,包括...

    java反射机制,很安逸.不要错过

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查并操作类、接口、字段和方法的信息,打破了...总的来说,Java反射机制是一把双刃剑,正确运用可以显著提升代码的灵活性,但也需注意其潜在的问题。

    Java反射机制

    Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、对象等的内部信息。通过反射,开发者可以动态地创建对象、调用方法、访问字段,甚至修改私有成员,这在实现元编程、插件系统、...

    JAVA 反射机制应用

    Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是java.lang.Class,它代表了运行时的类信息。通过Class对象,我们...

    java反射机制PPT

    反射机制的核心在于能够在运行时动态地获取类的信息,并且可以动态调用对象的方法,创建对象,甚至修改对象的属性。这种特性使得Java具备了一定的动态性,虽然在传统的分类中,Java被视为静态类型语言,但反射的存在...

    Java 1.5 反射机制

    反射机制也可以用来检查类是否实现了特定接口,通过`Class`对象的`isAssignableFrom()`方法,可以判断一个类是否可以从另一个类或接口进行赋值。 6. 泛型处理 尽管Java的泛型在编译时被擦除,但反射仍然提供了对...

    详细讲解反射机制

    ### 详细讲解反射机制 反射机制是Java编程语言中一项重要的特性,允许程序在运行时检查和修改其自身的结构和行为。...因此,在设计时应权衡其利弊,合理运用反射机制以提升代码的灵活性和可维护性。

    JAVA反射机制自定义框架测试代码

    Java反射机制是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在构建框架和库时尤为有用。本篇文章将...

    java反射机制的实现与使用

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查并操作类、接口、字段和方法等对象。...理解并熟练运用反射机制,对于提升Java开发的技能水平和解决问题的能力具有重要意义。

    反射机制的例子

    反射机制在Java编程语言中是一项强大的工具,它允许程序在运行时检查并操作类、接口、字段和方法等对象。这个技术的核心概念是能够在运行时分析类的信息,并且能够动态地创建对象、调用方法以及访问和修改字段值。...

    Java的反射机制深度解析

    Java的反射机制是Java语言提供的一种强大的工具,它允许程序在运行时动态地获取类的信息并操作类的对象。反射机制的核心在于Java中的`java.lang.Class`类,它...理解并合理运用反射机制是Java开发者必备的技能之一。

    java反射机制

    Java反射机制是Java语言提供的一种强大的工具,它允许程序在运行时检查类的信息,包括类的结构、属性、方法以及接口等。在SSH(Struts、Spring、Hibernate...在SSH框架的学习中,理解并熟练运用反射机制是至关重要的。

    JAVA反射机制学习

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。...理解并熟练运用反射机制,将使你在面对复杂和动态的编程需求时更加游刃有余。

    Java期末复习——枚举与反射机制

    反射机制允许在运行时检查类的信息,包括类的结构、字段、方法等,并动态创建和访问对象。`java.lang.Class`类是反射的起点,我们可以通过以下三种方式获取`Class`对象: 1. 对象的`getClass()`方法。 2. 类的`....

    Java反射机制(推荐)

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这种能力使得Java开发者能够在运行时动态地获取类的信息(如类名、方法名、参数类型等)并调用...

    dom4j 和java反射

    5. **动态代理**:反射机制是Java动态代理的基础,可以创建接口的代理对象以实现代理模式。 在实现Bean与XML的互转时,DOM4J和Java反射机制协同工作: 1. **XML到Bean**:首先,使用DOM4J解析XML文件,得到Element...

Global site tag (gtag.js) - Google Analytics