`

用java的反射清空对象属性的值

    博客分类:
  • JAVA
阅读更多
@SuppressWarnings("unchecked")
	public static void setObjectFieldsEmpty(Object obj) {
		// 对obj反射
		Class objClass = obj.getClass();
		Method[] objmethods = objClass.getDeclaredMethods();
		Map objMeMap = new HashMap();
		for (int i = 0; i < objmethods.length; i++) {
			Method method = objmethods[i];
			objMeMap.put(method.getName(), method);
		}
		for (int i = 0; i < objmethods.length; i++) {
			{
				String methodName = objmethods[i].getName();
				if (methodName != null && methodName.startsWith("get")) {
					try {
						Object returnObj = objmethods[i].invoke(obj,
								new Object[0]);
						Method setmethod = (Method) objMeMap.get("set"
								+ methodName.split("get")[1]);
						if (returnObj != null) {
							returnObj = null;
						}
						setmethod.invoke(obj, returnObj);
					} catch (IllegalArgumentException e) {
						e.printStackTrace();
					} catch (IllegalAccessException e) {
						e.printStackTrace();
					} catch (InvocationTargetException e) {
						e.printStackTrace();
					}
				}
			}

		}
	}





分享到:
评论

相关推荐

    Java 反射工具

    反射技术集合,针对对象的反射操作,包含:判断对象属性是否为空、清空对象、读取设置属性等等,比较实用

    java反射技术与类使用示例

    Java反射技术是Java编程语言中的一个强大特性,它允许运行时动态地获取类的信息并操作类的对象。在Java中,所有类都继承自`java.lang.Object`类,并且在编译后都以.class文件的形式存在。这些类包含了类的结构信息,...

    使用BeanUtils操作属性的一个小坑

    在Java开发中,Apache Commons BeanUtils库是一个非常实用的工具,它提供了许多便捷的方法来处理JavaBean对象,包括属性的复制、设置和获取等。然而,就像标题所指出的,“使用BeanUtils操作属性的一个小坑”,在...

    JAVA垃圾回收个人总结

    - **复制收集算法**:将内存分为两个相等的部分,当一部分使用完后,GC会将存活对象复制到另一部分,清空已使用部分。这种方式适用于年轻代的回收。 #### 五、结论 垃圾回收是Java编程中一个非常重要的特性,它极...

    超有用的安卓学习材料9

    以上就是从提供的内容中提取出的Android开发相关知识点,包括Activity管理、动画实现、ImageView的缩放类型以及风格和主题的运用,还有Java反射机制在获取对象属性中的应用。这些知识对于Android开发者来说都是非常...

    EasyExcel导出实体数据

    首先,EasyExcel的使用非常简单,它通过反射机制将Java对象与Excel表格的行数据对应起来,使得数据操作变得直观高效。要导出实体数据,我们首先需要创建一个实体类,该类的属性与Excel表格的列对应。例如,假设我们...

    个人笔记--Java_API

    #### 六、Java反射机制 **6.1 反射** - **概念**:运行时获取类信息并操作类的过程。 - **能做什么**: - 获取类的属性、方法等信息。 - 创建对象。 - 调用方法。 - **优点**:提高程序的灵活性。 - **缺点**:...

    java ee 面试题总结

    **透明性**:Hibernate使用反射机制,避免了字节码增强带来的额外开销。 4. **高性能**:轻量级框架,具有优秀的性能表现。 5. **映射灵活性**:支持多种复杂的关系映射,包括一对一、一对多、多对多等。 #### ...

    SSH面试题 java SSH面试题

    3. **反射机制**:使用Java反射机制实现透明性,无需字节码增强。 4. **高性能**:由于其轻量级设计,Hibernate具有很好的性能,并且支持多种复杂的数据关系。 **Hibernate的延迟加载(Lazy Loading)** 延迟加载是...

    Simple-Bean-Utility:bean 反射的简单实用程序,如 *setter 、 *getter 、 *populate 、 *copy 、*reset 、 *newInstance

    1. **Setter和Getter方法**:在Java中,getter和setter方法是访问和修改Bean对象属性的主要途径。Simple-Bean-Utility提供了便捷的API,可以自动根据属性名生成并执行相应的getter和setter方法,避免了手动编写大量...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    JAVA面试高频汇总1

    3. **Java反射原理**:反射允许运行时动态地获取类的信息(如类名、属性、方法等)并进行操作。它通过Class类实例来获取类的信息,通过Constructor、Method和Field类来访问构造器、方法和字段。 4. **新生代垃圾...

    JAVA核心知识点整理(有效)

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    开发笔记API.md

    它通过反射机制遍历对象的所有字段(属性),并将其字段名称作为键,对应的字段值作为值,存储到一个`Map`中。 - `getDeclaredFields()`获取类中声明的所有字段(包括私有的)。 - `setAccessible(true)`设置字段...

    Android 控制关闭Dialog

    要实现这一功能,我们可以借助Java的反射机制来修改Dialog内部的私有变量。在Dialog的父类中有一个名为`mShowing`的布尔型变量,这个变量控制着Dialog是否显示。通过反射,我们可以访问并修改这个变量的值,从而达到...

    hibernate面试题

    - **透明性**:Hibernate利用Java反射机制而非字节码增强程序实现透明性。 - **高性能**:Hibernate作为轻量级框架,具有出色的性能和灵活的映射能力,支持各种复杂的关系模式。 #### 四、Hibernate如何实现延迟...

Global site tag (gtag.js) - Google Analytics