从《java反射机制剖析(一)》的API我们看到了许多接口和类,我们能够通过这些接口做些什么呢?
从上篇API中我们能看到它能够完成下面的这些功能:
1)获得类
A.运用getClass() (每个class都有此函数)
i. String str = "abc";
ii. Class c1 = str.getClass();
B.运用Class.forName() (static method 最常被使用)
i. Class c1 = Class.forName ("java.lang.String");
ii. Class c2 = Class.forName ("java.awt.Button");
C.运用 .class 语法
i. Class c1 = String.class;
ii. Class c2 = java.awt.Button.class;
iii. Class c4 = int.class;
iv. Class c5 = int[].class;
D.运用 TYPE语法 ( primitive wrapper classes 基本数据类型包装类的 TYPE语法)
i. Class c1 = Boolean.TYPE;
2)获得属性(这个功能的实例见Java反射机制剖析(2))
以下四个方法可以获得属性,主要参见的是Java.lang.class
Public Field getField
(String name)
|
返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段
|
public Field[] getFields()
|
返回一个包含某些 Field 对象的数组,这些对象反映此 Class 对象所表示的类或接口的所有可访问公共字段
|
Public Field
getDeclaredField(String name)
|
返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段
|
public Field[]
getDeclaredFields()
|
返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段
|
3)获得方法()
以下四个方法可以获得方法,要参见的是Java.lang.class
public Method
getMethod(String name,
... )
|
返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法
|
public Method[] getMethods()
|
返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法
|
public Method
getDeclaredMethod(String name,…)
|
返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法
|
public Method[]
getDeclaredMethods()
|
返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法
|
4)获取类的构造器
以下四个方法可以获得方法,要参见的是Java.lang.class
public Constructor
getConstructor(Class<?>... )
|
返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法
|
public Constructor<?>[]
getConstructors()
|
返回一个包含某些 Constructor 对象的数组,这些对象反映此 Class 对象所表示的类的所有公共构造方法
|
Public Constructor<T>
getDeclaredConstructor(Class<?>...)
|
返回一个 Constructor 对象,该对象反映此 Class 对象所表示的类或接口的指定构造方法
|
public Constructor<?>[]
getDeclaredConstructors()
|
返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法。它们是公共、保护、默认(包)访问和私有构造方法
|
示例代码:
5)新建类的实例
调用类的Class对象的newInstance方法
|
示例:
|
调用默认Constructor对象的newInstance方法
|
示例:
|
调用带参数Constructor对象的newInstance方法
|
示例:
|
分享到:
相关推荐
Java 第三阶段增强分析需求,代码实现能力【反射】---- 代码 Java 第三阶段增强分析需求,代码实现能力【反射】---- 代码 Java 第三阶段增强分析需求,代码实现能力【反射】---- 代码 Java 第三阶段增强分析需求,...
Java反射机制总结(实例分析) Java反射机制学习笔记
Java综合性实验----------
计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。课堂教学计划表 计算机程序设计(Java)-教案--...
java学习资料—反射机制深入理解剖析;java学习资料—反射机制深入理解剖析;java学习资料—反射机制深入理解剖析;java学习资料—反射机制深入理解剖析;java学习资料—反射机制深入理解剖析;
Java反射机制剖析。里面有关于Java反射很详细的讲解。
上面涉及到的代码,可以下载. 博文链接:https://lggege.iteye.com/blog/218770
·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...
1、JAVA 讲解反射机制,基本使用介绍,原理分析; 1、JAVA 讲解反射机制,基本使用介绍,原理分析; 1、JAVA 讲解反射机制,基本使用介绍,原理分析; 1、JAVA 讲解反射机制,基本使用介绍,原理分析; 1、JAVA 讲解...
JAVA反射机制原理剖析配经典例子,以及模拟DBUTIL发射实现的JDBC操作包自己写的一个DEMO 如果模拟写的弄懂了 反射机制保准你懂了!
北京动力节点-Java编程零基础教程-118-Java基本语法-方法详解-方法的调用过程-举例及简单分析.avi 北京动力节点-Java编程零基础教程-119-Java基本语法-方法详解-方法的调用过程-方法调用过程中栈内存的变化.avi ...
对在Java环境下应用反射的性能,做了测试分析
使用Java反射机制逆向分析类方法之间的关系
用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用...
.NET中反射机制的使用与分析_-_focus_on_.NET_-_博客园
主要介绍了Java 反射机制实例详解的相关资料,这里对java中反射机制进行了详细的分析,需要的朋友可以参考下
这是java的diffutils工具,很不错。根据它可以做出和svn或其他的文件比较一样的效果。
java中反射机制的分析,动态代理的分析与实现。有详细的代码实例,适合学习。
java性能分析工具-yourkit破解版下载与使用,本资源仅限学习交流使用。
这个是sun公司的反射规范,如果想要深入的了解和分析反射,应该读一下规范,所有的其他的实现都是基于这个规范的。