`

反射获取类的set和get

阅读更多
package com.reflect;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class TestReflect {

	public static void main(String[] args) {
		Class c;
		/* 反射获取类的方法
		 *  try {
			c = Class.forName("com.reflect.Person");
			Field[] f = c.getDeclaredFields();  //获取映射类所有字段属性
			Method[] m = c.getDeclaredMethods();  //获取映射类的所有方法(继承的方法不会显示)
			for (int i = 0;i<m.length;i++) {
				//System.out.println(m[i].getName()+"========="+i);
				System.out.println(m[i]+"========="+i);  //显示映射类的方法信息
			}
			m[4].invoke(c.newInstance(), "aaa"); //调用映射类的方法
		} catch (Exception e) {
			e.printStackTrace();
		} */
		Person p = new Person("张三",16);
		Dog d = new Dog("蓝色","汪汪","旺才");
//		setObject(p);
//		System.out.println(p.getName());
		getObjectInfo(p);
	}
	
	/**
	 * 任何对象都可以设定值
	 */
	public static void setObject(Object obj){ //获取所有反射类set方法
		try {
			Class c = obj.getClass();
			Field[] f = c.getDeclaredFields();
			for(int i = 0;i<f.length;i++) {
				if(f[i].getName().equals("name")) {
					Method m = c.getMethod("setName", f[i].getType());
					m.invoke(obj, "aaa");
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 显示任何对象所有属性
	 */
	public static void getObjectInfo(Object obj){ //获取所有反射类的get方法
		try {
			Class c = obj.getClass();
			Field[] f = c.getDeclaredFields();
			for(int i = 0;i<f.length;i++){
				String fieldName = f[i].getName();
				String name = "get"+fieldName.substring(0,1).toUpperCase()+fieldName.substring(1,fieldName.length()).toLowerCase();
				//System.out.println(name);
				Method m = c.getMethod(name);
				System.out.println(m.invoke(obj, null));
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	} 
}
分享到:
评论

相关推荐

    Java 反射创建get set方法及反射方法的调用

    本文将详细介绍如何利用Java反射来创建get和set方法,并演示如何通过反射机制调用这些方法。 #### Java反射概述 Java反射机制提供了一种方式,可以在运行时获取类的信息,并创建和操作对象。这为开发者提供了极大的...

    Java通过PropertyDescriptor反射调用set和get方法

    本文将详细介绍如何使用`PropertyDescriptor`通过反射来调用Java对象的`set`和`get`方法。 首先,让我们了解`PropertyDescriptor`。`PropertyDescriptor`类代表了一个JavaBean的属性,它包含了该属性的`get`和`set`...

    java反射,获取所有属性、方法以及List集合类

    这些`Field`对象提供了设置和获取字段值的能力,通过`set()`和`get()`方法。 ```java Class&lt;?&gt; clazz = Class.forName("com.example.YourClass"); Field[] fields = clazz.getDeclaredFields(); for (Field ...

    C#反射(Reflection)对类的属性get或set值实现思路

    下面的例子,是Insus练习对一个类别的属性进行set和get值。 首先写一个类,再写一个可读写的属性: 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; /// &lt;...

    用反射的方式获取父类中的所有属性和方法

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作对象的内部结构,包括类的属性、方法以及构造器。...通过上述步骤,你可以有效地利用反射获取和操作类的父类属性和方法。

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

    这个压缩包中的内容显然是关于如何使用反射来获取类、方法和属性的实例教程。让我们深入探讨一下这个主题。 首先,我们要理解什么是反射。在Java中,反射API提供了一种方式,使我们能够在运行时动态地获取关于类、...

    java的类反射

    Field对象提供了设置和获取字段值的方法,如`set()`和`get()`。 3. `java.lang.reflect.Method`:表示类的方法。通过Class对象的`getMethods()`、`getMethod()`和`getDeclaredMethods()`可以获取类的方法信息。...

    反射获取自定义特性.zip

    本文将深入探讨如何通过反射获取类的自定义特性,并创建和使用自定义特性类。 首先,我们需要理解什么是特性(Attribute)。在.NET框架中,特性是一种元数据,可以附加到代码元素(如类、方法、属性等)上,为...

    java反射例子,封装了一个反射帮助类

    Java反射是Java编程语言中的一个重要特性,它允许运行时访问和操作类、接口、字段和方法等信息。在Java中,反射提供了动态类型的能力,使我们可以在程序运行时检查类的信息,创建和调用对象的方法,甚至修改对象的...

    利用反射子父类赋值高效工具类案例extends_setvalue.zip

    在Java编程中,反射是一种强大的工具,允许程序在运行时检查和操作类、接口、字段和方法的信息。在“利用反射子父类赋值高效工具类案例extends_setvalue.zip”中,我们关注的是如何通过反射机制高效地为子类和父类的...

    Java中类的反射机制

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

    反射类使用.rar

    7. **访问和修改字段**:`Field`对象的`get(Object obj)`用于获取指定对象的字段值,`set(Object obj, Object value)`用于设置字段值。注意,如果字段是私有的,需要先调用`setAccessible(true)`来允许访问。 反射...

    移植Xposed的反射工具类

    - 操作字段:`set()`和`get()`用于设置和获取字段值。 3. **移植策略**:由于`XposedHelper`依赖于Xposed的钩子机制,我们需要替换这部分功能。可以使用Java的常规反射API(如`Method.invoke()`)来代替Xposed的...

    Java反射调用工具类

    4. **访问字段**:`Field`类提供了获取和设置字段值的方法,如`getField()`、`get()`和`set()`。 5. **调用方法**:`Method`类允许我们调用对象的方法,包括静态和非静态方法,通过`getMethod()`或`...

    JAVA反射机制的入门代码

    3. **访问字段**:通过`Class`对象的`getFields()`或`getDeclaredFields()`方法获取所有公共或私有字段,然后使用`Field`对象的`get()`或`set()`方法读取或修改对象的字段值。 4. **调用方法**:使用`Class`对象的`...

    Java利用反射获取类信息

    然后,我们可以使用`Field`对象的`get(Object obj)`方法获取字段值,`set(Object obj, value)`方法设置字段值。 4. 调用方法: `Class`对象的`getMethods()`返回所有public方法,`getDeclaredMethods()`返回包括...

    java反射实例

    `Field`对象提供了设置和获取字段值的方法,如`set()`和`get()`。 3. **获取构造器(Constructors)**:`Class`对象的`getConstructors()`返回所有公共构造器,`getDeclaredConstructors()`返回所有声明的构造器。`...

    C#使用反射机制获取类信息

    ### C#中使用反射机制获取类信息 #### 反射机制概述 反射是.NET框架提供的一种强大工具,它允许程序在运行时动态地获取类型的信息并进行操作。这些信息包括类型名称、方法、属性等。此外,反射还支持动态创建和...

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

    3. 访问字段:`Field` 类代表类的字段,提供了访问和修改字段值的能力,如 `get()` 和 `set()` 方法。 4. 构造器:`Constructor` 类表示类的构造函数,可以通过 `newInstance()` 方法创建对象。 5. 动态代理:Java...

Global site tag (gtag.js) - Google Analytics