import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Reflect {
// 获取属性信息
public static void getFieldsInfo(Class c) {
Field[] f = c.getDeclaredFields();
for (int i = 0; i < f.length; i++) {
System.out.println("\n属 性:\t" + f[i]);
System.out.println("修饰符:\t"
+ Modifier.toString(f[i].getModifiers()));
System.out.println("类 型:\t" + f[i].getType());
System.out.println("属性名:\t" + f[i].getName());
}
}
// 获取方法信息
public static void getMethodsInfo(Class c) {
Method[] m = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++) {
System.out.println("\n方 法:\t" + m[i].toString());
System.out.println("修饰符:\t"
+ Modifier.toString(m[i].getModifiers()));
System.out.println("返回值:\t" + m[i].getReturnType());
System.out.println("方法名:\t" + m[i].getName());
System.out.print("参 数:\t");
Class[] p = m[i].getParameterTypes();
if (p.length == 0) {
System.out.print("null");
}
for (int j = 0; j < p.length; j++) {
System.out.print(p[j] + "\t");
}
System.out.println();
System.out.print("异 常:\t");
Class[] e = m[i].getExceptionTypes();
if (e.length == 0) {
System.out.print("null");
}
for (int j = 0; j < e.length; j++) {
System.out.print(e[j] + "\t");
}
System.out.println();
}
}
public static void main(String[] args) {
Class c = String.class;
// c = new Integer(5).getClass();
// c = Class.forName(new Integer(5).getClass().getName());
Reflect.getFieldsInfo(c);
Reflect.getMethodsInfo(c);
}
}
分享到:
相关推荐
Java中的反射机制是Java语言一个强大的特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。在深入理解Java反射机制之前,我们首先需要知道什么是类的元数据,即关于类本身的...
java反射机制核心代码,小弟一直弄不明白,怎么通过反射来调用私有成员方法,看了这个后,你可以随心调用private方法,和属性,记得添加setAccessable(true),哦,要不还是不行,如:method.setAccessable(true);
Reflect Metadata API是TypeScript团队引入的一个特性,它的设计灵感来源于C#的反射机制。在JavaScript中,我们通常通过原型链或者Object.keys等方法获取对象的信息,但这些方法无法获取到附加在对象上的元数据。...
在编程领域,反射是一种强大的机制,它允许程序在运行时检查和操作自身的结构,包括类、接口、方法和属性等。C++反射是一项相对较新的特性,首次在C++20标准中引入,目的是提高元编程的能力,使得代码更加灵活和动态...
在“Orm_Reflect_DB”这个项目中,它结合了反射机制来进一步增强ORM的功能。反射是.NET或Java等面向对象语言中的一种特性,允许程序在运行时检查自身的行为和结构。通过反射,可以在运行时动态创建对象、调用方法、...
在深入理解这个概念之前,我们需要先了解一些基础的Java类库,特别是`java.lang.reflect`包中的类。 1. **Class类**:在Java中,每一个类都有一个与之对应的Class对象。`Class`类是反射的核心,它代表了一个类的...
在JavaScript开发领域,元...通过合理利用`reflect-metadata`,开发者可以编写出更加灵活、可维护的代码,提升代码质量和开发效率。在实际项目中,尤其是使用TypeScript时,`reflect-metadata`是一个不可或缺的工具。
《Reflect Extensions:深入理解Unity中的反射机制》 在Unity游戏引擎开发中,Reflect Extensions是一个强大的工具,它扩展了Unity的内置反射功能,使得开发者能够更加灵活地操控游戏对象和组件,实现动态编程和元...
总之,"cpp-reflect在C++17中轻松实现反射和序列化"是一个深入了解C++高级特性的主题,对于那些寻求提高代码效率和扩展性的开发者来说,是一个不容错过的学习资源。通过实践这个项目,开发者可以锻炼自己的模板元...
通过Reflect对象,开发者可以更精确地控制JavaScript中的对象操作,同时提供了与语言内部机制更一致的接口。在实际编程中,尤其是在处理复杂的对象操作、优化性能或创建代理对象时,Reflect对象显得尤为有用。了解并...
Java 反射机制 Java 反射机制是 Java 语言中的一种动态获取信息和动态调用对象...Java 反射机制是 Java 语言中的一种非常重要的机制,它可以帮助我们在运行时获取信息和调用对象的方法,提高代码的灵活性和可维护性。
Java反射(Reflect)是Java语言中的一个重要特性,它允许运行时的Java程序访问、操作类、接口、字段和方法的信息,甚至动态调用方法。在Java编程中,反射提供了强大的能力,可以用来实现一些高级功能,如元编程、...
注解是Java语言提供的一种元数据机制,它允许在代码中嵌入信息,这些信息可以被编译器或运行时系统用来进行各种处理。在本例中,我们关注的是`@Controller`注解,这是一个Spring框架中的注解,用于标记一个类作为...
压缩包中的“JSD1606_Reflect”可能包含了一些示例代码,比如创建动态代理、实现运行时动态加载类、处理序列化等常见反射应用场景。 通过这个压缩包的学习,初学者可以了解到Java反射的基础知识,而有经验的开发者...
### Java反射机制详解 #### 一、引言 在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时访问类的信息并操纵类的对象。这种能力为Java程序提供了灵活性,使得代码能够在不知道具体类型的...
总的来说,JDK 1.8的`sun.reflect`和`unsafe`扩展提供了更强大的反射和底层操作能力,而源码的公开则为开发者提供了深入学习和优化代码的机会。通过阅读源码和相关文档,开发者可以更好地理解和利用这些特性,提升...
在阅读"java反射详解 - Rollen Holt - 博客园.htm"这篇文档时,你将深入理解这些概念,并通过具体的示例代码学习如何在实际项目中应用Java反射机制。同时,文档可能还包含了关于错误处理、异常情况和反射相关的API...
本文将通过实例深入解析Java反射机制。 首先,我们来看`TestParam.java`和`ParamClass.java`这两个文件,它们可能涉及到参数化类的使用。在Java中,反射可以帮助我们在运行时获取泛型信息。尽管Java的类型擦除导致...
Java中的反射机制是Java语言提供的一种强大的工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的...通过理解并熟练掌握Java反射机制,开发者可以更好地利用Java的动态性,提高代码的可扩展性和维护性。