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#的反射特性来自动化数据操作,以及如何结合XML进行数据存储。反射是.NET框架中的一个强大工具,它允许程序在运行时检查自身的行为,包括获取类型信息、创建...
Java的类反射是Java语言中一个强大的特性,它允许程序在运行时检查并操作类、接口、字段和方法的信息。这种动态类型的能力使得Java代码能够更加灵活,可以处理未知类型的对象,实现元编程,以及在运行时创建和访问类...
在“实体类反射非空赋值,AjaxJson工具类”这个主题中,我们将探讨如何使用反射来安全地为实体类的属性赋值,并结合Ajax与JSON进行数据的转换和交互。 首先,让我们深入了解反射的概念。Java反射API提供了Class类,...
在Java编程中,类反射机制是一种强大的工具,它允许程序在运行时检查并操作类的信息,包括类的方法、属性和构造器。这个机制是Java动态性的重要体现,它使得我们能够在不知道具体类名的情况下,创建对象并调用其方法...
### Java中的类反射机制 #### 一、反射的概念与历史 反射的概念最早由Smith于1982年提出,指的是程序有能力访问、检测并修改其自身的状态或行为。这一概念一经提出,便迅速引起了计算机科学领域的关注,并在多个...
Java的类反射机制是Java程序开发中的一个重要特性,它允许程序在运行时检查自身结构,动态地访问和修改对象的属性和方法。反射的核心在于Java Reflection API,这是一组类和接口,使得开发者能够在运行时获取类的...
在"java类反射示例源码"中,我们可以深入理解这个概念并学习如何在实际开发中应用。 反射的使用通常涉及到以下关键知识点: 1. **Class类**: 在Java中,`java.lang.Class`类是所有类的通用表示,每个类都有一个与...
Java中的类反射机制是Java语言的一个强大特性,它允许程序在运行时检查并操作类、接口、字段和方法。这个特性使得Java具有高度的灵活性,能够处理动态类型的数据,实现元编程,以及在未知类名的情况下创建和操作对象...
在Java中,反射机制主要通过java.lang.Class类和相关的类库来实现,它使得我们能够在运行时动态地获取类的信息(如类名、属性、方法等)并能创建和调用对象。 1. **类的加载与Class对象** 当Java虚拟机(JVM)加载一...
Java类反射 动态代理 讲解的很细,很受用 分享给大家
在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段和方法等对象。枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-...
1、假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = Assembly.LoadFile(程序集路径,不能是相对路径); // 加载程序集(EXE 或 DLL) dynamic obj = assembly....
Python的类反射机制是一种强大的编程技术,它允许程序在运行时动态地检查和操作对象的属性和方法。这种机制使得代码更加灵活,可以处理未知的类名或方法名,尤其在设计框架或库时非常有用。本文将通过实例详细解析...
反射是.NET框架提供的一种特性,通过System.Reflection命名空间中的类来实现。主要类包括Assembly(程序集)、Type(类型)、ConstructorInfo(构造函数信息)、MethodInfo(方法信息)和PropertyInfo(属性信息)...
### 类的反射机制及其常用方法 #### 反射机制简介 反射是Java语言的一个重要特性,它允许在运行时检查类、接口、字段和方法的信息,并且可以动态地调用方法或修改字段值。这种能力使得Java程序具有高度的灵活性和...
#### 二、Java中的类反射 Java的反射机制是一种强大的工具,允许程序在运行时检查和操作类、接口、字段和方法等。这是Java语言特有的功能,使得Java程序比其他语言(如C、C++)更加灵活。 ##### 2.1 Reflection的...
本文将深入探讨如何结合反射技术和XML来实现通用实体类,并解释这两个技术在这一过程中的作用。 首先,让我们了解什么是反射技术。在Java中,反射是一种强大的工具,它允许程序在运行时检查和操作其他类、接口、...
Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass...
### Flex开发中的类反射技术详解 #### 引言 随着Flex技术在富互联网应用(RIA)领域的广泛应用,其独特的能力,如强大的图形处理能力和高效的数据处理机制,使其成为开发高性能Web应用的首选工具之一。Flex的灵活...
Java类加载器和类反射是Java编程中两个重要的概念,它们允许我们动态地加载和操作类。类加载器是Java虚拟机(JVM)的一部分,它的主要任务是将.java文件编译成的.class文件加载到内存中并创建对应的Class对象。类...