`

java反射机制应用简单实例

 
阅读更多
*
* @param obj
*            当前操作对象的信息
*
* @return void
*/
public <T> void getObjectInfo(T obj)
{
  //根据具体情况,决定是本类还是超类。

Class ca = obj.getClass().getSuperclass();
             Object supObj = ca.cast(obj);
Field[] fields = ca.getDeclaredFields();
StringBuilder reStr = new StringBuilder("[");
for (Field f : fields) {
try {
f.setAccessible(true);
Object fvalue = f.get(supObj);
if (null == fvalue) {
reStr.append("," + f.getName() + ":" + fvalue);
}

if (fvalue instanceof java.util.Collection
|| fvalue instanceof java.util.List
|| fvalue instanceof java.util.Map
|| fvalue instanceof java.util.Set) {
continue;
}
if (!f.isSynthetic()) {
//这里结合了具体业务。因为我们项目中pojo都继承了这个对象
if (fvalue instanceof com.common.dto.BaseDto) {
  //根据具体情况,决定是本类还是超类。 Class fc = fvalue.getClass().getSuperclass();
Field[] ffs = fc.getDeclaredFields();
for (Field hf : ffs) {
hf.setAccessible(true);
if (hf.getName().equalsIgnoreCase("id")) {
reStr.append(","
+ fvalue.getClass().getSimpleName()
+ hf.getName() + ":" + hf.get(fvalue));
break;
} else if (hf.getName().endsWith("Id")) {
String allname = "T"
+ hf.getName().substring(0,
hf.getName().length() - 2)
+ "DTO";
if (fc.getSimpleName()
.equalsIgnoreCase(allname)
|| fc.getSimpleName().equalsIgnoreCase(
"Abstract" + allname)) {
reStr.append("," + hf.getName() + ":"
+ hf.get(fvalue));
break;
}

}
}
} else {
reStr.append("," + f.getName() + ":" + fvalue);
}
}
} catch (IllegalArgumentException e) {
// e.printStackTrace();
} catch (IllegalAccessException e) {
// e.printStackTrace();
}

}
reStr.append("]");
log.info("对象信息:" + reStr.toString());
}
0
0
分享到:
评论

相关推荐

    Java 反射机制 代码的实例

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象等的内部结构。通过反射,开发者可以动态地获取类的信息并调用其方法,创建对象,访问私有成员,甚至改变类的行为。在深入...

    Java反射机制总结(实例分析)

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并进行操作。通过反射,开发者可以在程序执行时发现并访问类的字段(fields)、方法(methods)以及构造器(constructors),...

    java的反射机制的应用实例

    以下是对Java反射机制应用实例的详细解释: 1. **获取类信息**:使用`Class`类的`forName()`方法可以获取到任何类的`Class`对象,例如`Class&lt;?&gt; clazz = Class.forName("全限定类名");`。这样我们就能获取到该类的...

    java反射机制应用

    ### Java反射机制应用详解 #### 一、Java反射机制简介 Java反射机制是Java语言提供的一种能在运行时分析类信息并动态操作对象的功能。通过反射,我们可以在程序运行期间获取类的信息(如类名、方法名等),创建...

    JAVA 反射机制应用

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

    反射实例-JAVA反射机制

    ### 反射实例—JAVA反射机制 #### 一、反射概念及原理 反射在计算机科学领域,特别是程序设计中,是指程序有能力访问、检测和修改其自身的结构和行为。这一概念最早由Smith于1982年提出,并迅速应用于各种编程语言...

    Java反射机制 Java反射机制

    Java反射机制的主要作用包括:获取类的所有属性和方法、构造动态实例、调用类的方法等。通过反射,程序可以动态地创建对象和调用其方法,从而实现更灵活的功能。 #### 二、Java反射机制的由来与发展 Java反射机制...

    java的反射机制及其实际应用

    ### Java的反射机制及其实际应用 #### 一、引言 ...总之,Java反射机制是一项强大的工具,它能够在运行时动态地获取和操作类的信息。然而,应该谨慎使用反射,避免滥用造成不必要的性能损失或安全风险。

    反射实例-JAVA反射机制.doc

    Java 反射机制详解 Java 反射机制是 Java 语言提供的一种强大的工具,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作。这种能力使得 Java 应用程序更加灵活,能够在运行时发现和修改自身...

    java反射机制简单理解

    Java 反射机制的主要应用场景有两种:一种是 Java 反射机制在 Java 语言内部的应用,另一种是 Java 反射机制在 Java 本地接口(JNI)中的应用。 在 Java 语言内部,Java 反射机制可以用来动态地加载类、创建对象、...

    JAVA反射机制的入门代码

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法...

    Java反射机制总结

    ### Java反射机制总结 #### 反射的概念与起源 反射的概念最早由Smith于1982年提出,指的是程序能够访问、检测并修改其自身状态或行为的能力。这一概念的提出迅速引起了计算机科学领域的广泛关注,并在之后的研究中...

    java 反射实例,大量注释,简单易懂

    Java反射是Java编程语言中的一个重要特性,它允许程序在...学习这个示例,你可以更好地掌握Java反射机制,如何实例化对象,调用方法以及访问字段。通过实践,你将能够灵活地应用反射到实际项目中,解决动态编程的需求。

    Java反射机制的详细讲解及实例,有助于java深度开发

    下面将详细阐述Java反射机制的基本概念、应用场景以及如何使用。 一、反射机制基本概念 1. 类加载:Java程序在运行时,JVM会将.class文件加载到内存中,形成类的Class对象,这个过程称为类加载。 2. 类的Class对象...

    java反射机制实例

    这个实例将深入探讨Java反射机制的使用,通过具体代码示例来阐述其工作原理和应用。 在Java中,反射机制主要用于在运行时获取类的信息,包括类名、方法名、参数类型等,并且可以动态调用对象的方法或访问对象的属性...

    java 反射机制详解

    Java 反射机制是 Java 语言中的一个重要特性,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并调用对象的方法,甚至修改对象的状态。这一机制极大地增强了 Java 程序的灵活性和可扩展性,尤其是在...

    Java反射机制经典案例

    Java反射机制是Java编程语言中的一个强大...通过以上介绍,我们了解了Java反射机制的基本概念、使用方法、应用场景以及需要注意的问题。在实际编程中,合理利用反射可以提高代码的灵活性,但同时也需注意其潜在的风险。

    候捷谈Java反射机制

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时获取和操作任何已知名称的类的内部信息。这一机制使得Java具备了一定的动态性,虽然在传统的分类中Java被视为静态类型语言。通过反射,开发者可以在...

Global site tag (gtag.js) - Google Analytics