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验证字符串中是否包含数字,对数字的操作
2016-03-15 11:01 9542在javascript中有一个方法 ... -
jdk7 Collections.sort()方法报非法参数异常
2016-03-03 18:57 12111JDK7的Comparison method violates ... -
log4j.properties配置详解
2016-01-18 16:50 1329Log4J的配置文件(Configuration File)就 ... -
Java 日期时间 Date类型,long类型,String类型表现形式的转换
2015-12-24 17:35 3317Java 日期时间 Date类型,long类型,String类 ... -
Java多线程-工具篇-BlockingQueue
2015-11-24 16:13 1016Java多线程-工具篇-Block ... -
Java 实例 - 队列(Queue)入门用法
2015-11-23 17:27 2036队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表 ... -
Java中序列化的serialVersionUID作用
2015-11-13 14:13 4885Java序列化是将一个对象 ... -
java的序列化和反序列化
2015-10-27 19:48 1152Java基础学习总结——Jav ... -
java中volatile关键字的含义
2015-08-12 20:10 792java中volatile关键字的含 ... -
Java读写文件中文乱码问题
2015-07-20 17:49 3006问题:在用Java程序进行读写含中文的txt文件时,经常会出现 ... -
String类中split方法的使用
2015-07-02 14:39 1031String类中split方法的使用 split 方法:将一个 ... -
PreparedStatement防止SQL注入
2015-04-11 16:27 2841一条效率差的sql语句,足以毁掉整个应用. Stateme ... -
Session的生命周期
2015-04-11 11:58 968我们已经知道,Session是在用户第一次访问网 ... -
JAVA多线程和并发基础
2015-04-11 11:58 807JAVA多线程和并发基础 ... -
Java中equals()与hashCode()方法详解
2015-04-08 16:19 924一.equals()方法详解 equals()方法在o ... -
json数据后台处理
2015-03-30 16:05 837JAVA解析JSON问题,怎么解析,急!! String j ... -
java判断list为空
2015-01-30 15:25 4011java判断list为空 if(null == list | ... -
httpclient使用实践
2015-01-09 17:09 1386httpclient是什么这里不再详述(可参考最下方网址);直 ... -
java反射获取属性和方法
2015-01-09 11:12 3146反射的应用一般是要用到某些特殊类的属性和方法,无论是一般方法还 ... -
java中int 转String位数不够前面补零
2015-01-08 21:53 20043java 中int 转String位数不够前面补零 Stri ...
相关推荐
本文将详细介绍如何利用Java反射来创建get和set方法,并演示如何通过反射机制调用这些方法。 #### Java反射概述 Java反射机制提供了一种方式,可以在运行时获取类的信息,并创建和操作对象。这为开发者提供了极大的...
本文将详细介绍如何使用`PropertyDescriptor`通过反射来调用Java对象的`set`和`get`方法。 首先,让我们了解`PropertyDescriptor`。`PropertyDescriptor`类代表了一个JavaBean的属性,它包含了该属性的`get`和`set`...
这些`Field`对象提供了设置和获取字段值的能力,通过`set()`和`get()`方法。 ```java Class<?> clazz = Class.forName("com.example.YourClass"); Field[] fields = clazz.getDeclaredFields(); for (Field ...
下面的例子,是Insus练习对一个类别的属性进行set和get值。 首先写一个类,再写一个可读写的属性: 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <...
在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作对象的内部结构,包括类的属性、方法以及构造器。...通过上述步骤,你可以有效地利用反射获取和操作类的父类属性和方法。
这个压缩包中的内容显然是关于如何使用反射来获取类、方法和属性的实例教程。让我们深入探讨一下这个主题。 首先,我们要理解什么是反射。在Java中,反射API提供了一种方式,使我们能够在运行时动态地获取关于类、...
Field对象提供了设置和获取字段值的方法,如`set()`和`get()`。 3. `java.lang.reflect.Method`:表示类的方法。通过Class对象的`getMethods()`、`getMethod()`和`getDeclaredMethods()`可以获取类的方法信息。...
本文将深入探讨如何通过反射获取类的自定义特性,并创建和使用自定义特性类。 首先,我们需要理解什么是特性(Attribute)。在.NET框架中,特性是一种元数据,可以附加到代码元素(如类、方法、属性等)上,为...
Java反射是Java编程语言中的一个重要特性,它允许运行时访问和操作类、接口、字段和方法等信息。在Java中,反射提供了动态类型的能力,使我们可以在程序运行时检查类的信息,创建和调用对象的方法,甚至修改对象的...
在Java编程中,反射是一种强大的工具,允许程序在运行时检查和操作类、接口、字段和方法的信息。在“利用反射子父类赋值高效工具类案例extends_setvalue.zip”中,我们关注的是如何通过反射机制高效地为子类和父类的...
在Java中,反射机制主要通过java.lang.Class类和相关的类库来实现,它使得我们能够在运行时动态地获取类的信息(如类名、属性、方法等)并能创建和调用对象。 1. **类的加载与Class对象** 当Java虚拟机(JVM)加载一...
7. **访问和修改字段**:`Field`对象的`get(Object obj)`用于获取指定对象的字段值,`set(Object obj, Object value)`用于设置字段值。注意,如果字段是私有的,需要先调用`setAccessible(true)`来允许访问。 反射...
- 操作字段:`set()`和`get()`用于设置和获取字段值。 3. **移植策略**:由于`XposedHelper`依赖于Xposed的钩子机制,我们需要替换这部分功能。可以使用Java的常规反射API(如`Method.invoke()`)来代替Xposed的...
4. **访问字段**:`Field`类提供了获取和设置字段值的方法,如`getField()`、`get()`和`set()`。 5. **调用方法**:`Method`类允许我们调用对象的方法,包括静态和非静态方法,通过`getMethod()`或`...
3. **访问字段**:通过`Class`对象的`getFields()`或`getDeclaredFields()`方法获取所有公共或私有字段,然后使用`Field`对象的`get()`或`set()`方法读取或修改对象的字段值。 4. **调用方法**:使用`Class`对象的`...
然后,我们可以使用`Field`对象的`get(Object obj)`方法获取字段值,`set(Object obj, value)`方法设置字段值。 4. 调用方法: `Class`对象的`getMethods()`返回所有public方法,`getDeclaredMethods()`返回包括...
`Field`对象提供了设置和获取字段值的方法,如`set()`和`get()`。 3. **获取构造器(Constructors)**:`Class`对象的`getConstructors()`返回所有公共构造器,`getDeclaredConstructors()`返回所有声明的构造器。`...
### C#中使用反射机制获取类信息 #### 反射机制概述 反射是.NET框架提供的一种强大工具,它允许程序在运行时动态地获取类型的信息并进行操作。这些信息包括类型名称、方法、属性等。此外,反射还支持动态创建和...
3. 访问字段:`Field` 类代表类的字段,提供了访问和修改字段值的能力,如 `get()` 和 `set()` 方法。 4. 构造器:`Constructor` 类表示类的构造函数,可以通过 `newInstance()` 方法创建对象。 5. 动态代理:Java...