`

通过反射,获取类的属性名称和属性值

    博客分类:
  • Java
阅读更多

通过反射,获取类的属性名称和属性值

 

1.获取属性名称:

Field[] fields =obj.getClass().getDeclaredFields();

ProjectBasicInfoDao dao = new ProjectBasicInfoDao();
	int xmid = Integer.valueOf(request.getParameter("xmid"));
	ProjectBasicInfo basicInfo = dao.getProjectBasicInfoByXmid(xmid);
	Field[] fields = basicInfo.getClass().getDeclaredFields();//获取属性名称数组
	JSONObject jObject = new JSONObject();
	for (int i = 0; i < fields.length; i++) {
		String name = fields[i].getName();
		String value = "";
		Object valueObj = getFieldValue(basicInfo ,fields[i].getName());//获取属性值
		if (valueObj != null) {
			value = valueObj.toString();
		}
	jObject.put(name,value);
	}
	JSONObject jObject2 = new JSONObject();
	JSONArray jArray = new JSONArray();
	jArray.put(jObject);
	jObject2.put("data", jArray);

 

Dao获取对象:

public ProjectBasicInfo getProjectBasicInfoByXmid(int xmid) {
		Session s = null;
		ProjectBasicInfo projectBasicInfo = null;
		try {
			s = HibernateUtil.getSession();
			s.beginTransaction();
			Query query = s.createQuery("from ProjectBasicInfo where xmid = :xmid");
			query.setInteger("xmid", xmid);
			projectBasicInfo = (ProjectBasicInfo) query.uniqueResult();
		} catch (Throwable e) {
			logger.error(e.toString());
			HibernateUtil.endSession(s);
		} finally {
			HibernateUtil.endSession(s);
		}
		return projectBasicInfo;
	}

 

2.通过属性名称获取属性值:

(1).通过属性名创建getMethod

(2).用getMethod.invoke(obj)获取属性值

/**
    * 通过反射,用属性名称获得属性值
    * @param thisClass 需要获取属性值的类
    * @param fieldName 该类的属性名称
    * @return
    */
   private Object getFieldValue(Object thisClass, String fieldName)
   {
	   Object value = new Object();
       Method method = null;
       try {
    	   String methodName = fieldName.substring(0, 1).toUpperCase()+ fieldName.substring(1);
    	   method = thisClass.getClass().getMethod("get" + methodName);
    	   value = method.invoke(thisClass);
       } catch (Exception e) {
    	   e.printStackTrace();
       }  
       return value;
   }

 

分享到:
评论

相关推荐

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    这些代码可能包括创建枚举类,然后通过反射获取枚举值、实例名以及演示如何使用`getDeclaredConstructor()`和`newInstance()`方法来访问私有构造函数(虽然这不是常规用法)。 通过深入理解这些概念,你可以更好地...

    利用反射机制动态获取对象属性名称及数据类型

    在本例中,我们利用`Type`类的`GetProperties`方法获取了`Student`类的所有公共属性,然后通过`PropertyInfo`对象获取属性名和数据类型。此外,`SetValue`方法使我们能够在运行时修改对象的属性值,展示了反射机制的...

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

    #### 二、反射获取类中的属性及值 下面,我们将通过具体的代码示例来展示如何使用反射来获取类中的所有属性及其对应的值。 ##### 1. 获取类的信息 首先,我们需要获取目标类的信息。这里使用`getClass()`方法来...

    java反射获取所有属性,获取所有get方法,包括子类父类

    在标题和描述中提到的知识点主要集中在如何通过反射获取类的所有属性和get方法,包括来自子类和父类的。下面将详细介绍这些内容。 1. **获取所有属性**: 在Java中,`java.lang.Class` 类提供了获取类属性的方法。...

    通过反射获得实体类的字段和值

    在深入探讨如何通过反射获取实体类的字段和值之前,我们先来理解一下反射是什么以及它在.NET框架中的作用。反射是一种强大的编程技术,允许运行时动态地获取类型的信息并操作对象。它提供了对程序集、模块、类型、...

    java 反射取得类的私有属性,通过私有属性取得属性值

    这篇博客文章可能讨论了如何利用反射机制来获取类的私有属性并读取其对应的属性值。以下是关于这个主题的详细解释。 首先,我们需要理解什么是反射。Java反射API提供了一系列类和接口,如`Class`、`Field`、`Method...

    VB.NET 反射类属性名称

    这个“VB.NET 反射类属性名称”主题聚焦于如何利用反射来获取或设置类中特定属性的值,尤其是当我们只知道属性的名称,而没有直接的引用时。 反射的基本原理是通过System.Reflection命名空间中的类来实现的。在这个...

    Java利用反射获取object的属性和值代码示例

    "Java利用反射获取object的属性和值代码示例" Java中的反射机制可以让我们在程序运行时动态地获取和修改对象的属性和值,这个技术非常有用,尤其是在一些框架和库的实现中。在这篇文章中,我们将通过一个实用的例子...

    C#通过属性名称获取(读取)属性值的方法

    本文的焦点在于如何使用`Type`和`PropertyInfo`类来通过属性名称获取属性值。 首先,我们来看一段示例代码: ```csharp using System; public abstract class AbstractGetValue { public object GetValue(string...

    通过构造及反射实现类属性赋值

    标题中的“通过构造及反射实现类属性赋值”涉及到的技术是Java的构造函数和反射机制。这两种方法在特定场景下能帮助我们更灵活、更深入地处理对象属性的复制。 首先,构造函数是创建新对象时调用的特殊方法,它可以...

    C#通过属性名字符串获取、设置对象属性值操作示例

    C# 通过属性名字符串获取、设置对象属性值操作示例主要介绍了 C# 通过反射获取对象属性值并设置属性值、获取对象的所有属性名称及类型等相关操作技巧。下面是详细的知识点解释: 一、通过反射获取对象属性值 在 C#...

    运用注解改变反射之后类属性的顺序

    然而,当我们通过反射获取类的属性时,可能会遇到一个常见的问题:属性的顺序并不总是按照我们期望的方式呈现。默认情况下,Java反射API(如`Field[] getDeclaredFields()`方法)返回的字段数组顺序与它们在源代码中...

    Java 采用反射获取class属性值的实现代码

    在上述代码中,我们看到了如何利用反射来获取类的属性值。以下是对这一实现的详细解释: 1. **获取类的属性**: `Field[] fields = this.getClass().getDeclaredFields();` 这行代码使用`getDeclaredFields()`...

    通过反射获取类和方法.zip

    获取属性(字段)可以使用`getFields()`和`getField(String name)`。前者返回所有公共字段,后者根据字段名精确匹配。例如: ```java Field field = clazz.getField("myField"); ``` 一旦我们有了`Method`或`Field...

    java反射遍历实体类属性和类型,并赋值和获取值的简单方法

    1. **获取属性和类型**: - 使用`model.getClass().getDeclaredFields()`来获取实体类的所有声明的字段(包括私有字段)。 - 遍历`Field`数组,通过`Field`对象的`getName()`方法获取字段名,`getGenericType()....

    java反射获取一个object属性值代码解析

    java反射获取一个object属性值代码解析是java编程中一个非常重要的知识点,通过反射机制,可以动态地获取一个object的属性值,无需提前知道该对象的类型。下面将详细介绍java反射获取一个object属性值代码解析的相关...

    C# 获取调用函数 参数名称和值

    总之,C#中获取调用函数的参数名称主要依赖于反射机制,通过`StackTrace`、`StackFrame`和`MethodBase`来追踪和解析调用信息。然而,获取参数值通常需要更复杂的策略,如使用AOP或对代码进行特殊处理。在实际开发中...

    C# 调用函数时动态获取参数名称和值

    然而,要动态获取参数名称和值,我们需要利用反射(Reflection)和表达式树(Expression Trees)这两个强大的工具。 **反射(Reflection)**是.NET框架的一个特性,它允许程序在运行时检查自身的信息,如类型、属性...

    qt 属性表,设置属性和获取属性例子

    本教程将深入探讨如何使用Qt属性表来设置和获取属性,并通过具体的代码示例进行讲解。 1. **属性系统概述** Qt的属性系统提供了一种动态的方式来存储和修改对象的状态。每个属性都有一个关联的getter和setter方法...

    java 反射得到某个方法

    通过反射,我们可以在不知道具体类名或方法名的情况下,动态地调用对象的方法或访问其属性。在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java....

Global site tag (gtag.js) - Google Analytics