`
xjq2008
  • 浏览: 15839 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

类的反射

    博客分类:
  • J2SE
 
阅读更多
package com.funo.web_frame.test;

import java.lang.reflect.Field;

public class Engine 
{

	private String engineId;
	private String engineName;
	private String engineType;

	public static void main(String[] args) throws Exception
	{
//		 Engine3 m = new Engine3();
		 Engine m = new Engine();
		 m.engineId="dddd";
		 Engine.getNamesValues(m, "===================");
	}
            /**
	 * 获取对象 所以属性值与属性  在同一个类中 属性为private 可以获取
	 * 不同类中或者包中 private 属性值无法获取 
	 * @param o
	 * @param s
	 */
	public static void getNamesValues(Object o, String s)
	{
		Field[] f = o.getClass().getDeclaredFields();
		Object[] value = new Object[f.length];
		String name[] = new String[f.length];
		for (int i = 0; i < f.length; i++)
		{
			 name[i] = f[i].getName();
			 try
			 {
			   value[i] = f[i].get(o);
			 } catch (Exception e)
			 {
				 e.printStackTrace();
			 }
			 System.out.println("name:" + name[i]);
			 System.out.println("Value:" + value[i]);
		}
	}

}





===================通过类的 set get 方法获取==========================
    @SuppressWarnings("unchecked")
	public static void getNamesValues(Object o ,String s)  
	{
		System.out.println("****************"+s+"*****************");
		Field[] f = o.getClass().getDeclaredFields();
		Class classType = o.getClass();
		Object[] value = new Object[f.length];
		for (int i = 0; i < f.length; i++)
		{
			String fieldName = f[i].getName();
			String firstLetter = fieldName.substring(0, 1).toUpperCase();
			String getMethodName = "get" + firstLetter + fieldName.substring(1);
			Method getMethod;
			try
			{
				getMethod = classType.getMethod(getMethodName, new Class[] {});
				value[i] = getMethod.invoke(o, new Object[] {});
			} catch (Exception e)
			{
			}

			System.out.println(fieldName+" = "+value[i]);
		}
	}

 

分享到:
评论

相关推荐

    C#+实体类反射+初阶

    本主题聚焦于"C#+实体类反射+初阶",它涉及到如何利用C#的反射特性来自动化数据操作,以及如何结合XML进行数据存储。反射是.NET框架中的一个强大工具,它允许程序在运行时检查自身的行为,包括获取类型信息、创建...

    java的类反射

    Java的类反射是Java语言中一个强大的特性,它允许程序在运行时检查并操作类、接口、字段和方法的信息。这种动态类型的能力使得Java代码能够更加灵活,可以处理未知类型的对象,实现元编程,以及在运行时创建和访问类...

    实体类反射非空赋值,AjaxJson工具类

    在“实体类反射非空赋值,AjaxJson工具类”这个主题中,我们将探讨如何使用反射来安全地为实体类的属性赋值,并结合Ajax与JSON进行数据的转换和交互。 首先,让我们深入了解反射的概念。Java反射API提供了Class类,...

    通过类反射机制实现底层数据库连接

    在Java编程中,类反射机制是一种强大的工具,它允许程序在运行时检查并操作类的信息,包括类的方法、属性和构造器。这个机制是Java动态性的重要体现,它使得我们能够在不知道具体类名的情况下,创建对象并调用其方法...

    java中的类反射机制

    ### Java中的类反射机制 #### 一、反射的概念与历史 反射的概念最早由Smith于1982年提出,指的是程序有能力访问、检测并修改其自身的状态或行为。这一概念一经提出,便迅速引起了计算机科学领域的关注,并在多个...

    java的类反射机制

    Java的类反射机制是Java程序开发中的一个重要特性,它允许程序在运行时检查自身结构,动态地访问和修改对象的属性和方法。反射的核心在于Java Reflection API,这是一组类和接口,使得开发者能够在运行时获取类的...

    java类反射示例源码

    在"java类反射示例源码"中,我们可以深入理解这个概念并学习如何在实际开发中应用。 反射的使用通常涉及到以下关键知识点: 1. **Class类**: 在Java中,`java.lang.Class`类是所有类的通用表示,每个类都有一个与...

    Java中的类反射机制

    Java中的类反射机制是Java语言的一个强大特性,它允许程序在运行时检查并操作类、接口、字段和方法。这个特性使得Java具有高度的灵活性,能够处理动态类型的数据,实现元编程,以及在未知类名的情况下创建和操作对象...

    Java中类的反射机制

    在Java中,反射机制主要通过java.lang.Class类和相关的类库来实现,它使得我们能够在运行时动态地获取类的信息(如类名、属性、方法等)并能创建和调用对象。 1. **类的加载与Class对象** 当Java虚拟机(JVM)加载一...

    Java类反射和动态代理(超经典)

    Java类反射 动态代理 讲解的很细,很受用 分享给大家

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

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段和方法等对象。枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-...

    详解C# 利用反射根据类名创建类的实例对象

    1、假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = Assembly.LoadFile&#40;程序集路径,不能是相对路径&#41;; // 加载程序集(EXE 或 DLL) dynamic obj = assembly....

    Python类反射机制使用实例解析

    Python的类反射机制是一种强大的编程技术,它允许程序在运行时动态地检查和操作对象的属性和方法。这种机制使得代码更加灵活,可以处理未知的类名或方法名,尤其在设计框架或库时非常有用。本文将通过实例详细解析...

    C#,利用反射动态创建对象

    反射是.NET框架提供的一种特性,通过System.Reflection命名空间中的类来实现。主要类包括Assembly(程序集)、Type(类型)、ConstructorInfo(构造函数信息)、MethodInfo(方法信息)和PropertyInfo(属性信息)...

    类的反射机制 常用的方法(简单明确)

    ### 类的反射机制及其常用方法 #### 反射机制简介 反射是Java语言的一个重要特性,它允许在运行时检查类、接口、字段和方法的信息,并且可以动态地调用方法或修改字段值。这种能力使得Java程序具有高度的灵活性和...

    反射实例-JAVA反射机制

    #### 二、Java中的类反射 Java的反射机制是一种强大的工具,允许程序在运行时检查和操作类、接口、字段和方法等。这是Java语言特有的功能,使得Java程序比其他语言(如C、C++)更加灵活。 ##### 2.1 Reflection的...

    采用反射技术和XML的通用实体类

    本文将深入探讨如何结合反射技术和XML来实现通用实体类,并解释这两个技术在这一过程中的作用。 首先,让我们了解什么是反射技术。在Java中,反射是一种强大的工具,它允许程序在运行时检查和操作其他类、接口、...

    内部类与反射机制详解

    Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass...

    Flex 开发类的反射

    ### Flex开发中的类反射技术详解 #### 引言 随着Flex技术在富互联网应用(RIA)领域的广泛应用,其独特的能力,如强大的图形处理能力和高效的数据处理机制,使其成为开发高性能Web应用的首选工具之一。Flex的灵活...

    java类加载器和类反射使用示例

    Java类加载器和类反射是Java编程中两个重要的概念,它们允许我们动态地加载和操作类。类加载器是Java虚拟机(JVM)的一部分,它的主要任务是将.java文件编译成的.class文件加载到内存中并创建对应的Class对象。类...

Global site tag (gtag.js) - Google Analytics