首先要求大家对Java泛型知识有所了解,因为程序代码中大量使用了泛型相关知识。
- 动态语言与反射
- Java反射的典型应用
- Java反射常用的对象
- Class<T>
类是程序的一部分,每个类都有一个Class对象。换言之,每当编写并且编译了一个新类,就会产生一个Class对象。
Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。
Class是Reflection起源。要想操纵类中的属性和方法,都必须从获取Class object开始。
第一个实例就用大家非常熟悉的ArrayList类,我们尝试来获取ArrayList申明的方法。
public static void main(String[] args) { ArrayList aList = new ArrayList(); Class alClass = aList.getClass(); System.out.println("①"+alClass); System.out.println("②"+alClass.getName()); Method[] alMethod = alClass.getDeclaredMethods(); for(Method method : alMethod){ System.out.println("③"+method); System.out.println("④"+method.getName()); } }
获取方法 | 说明 | 示例 |
object.getClass()每个对象都有此方法 | 获取指定对象的Class |
List list = new ArrayList(); Class listClass = list.getClass(); |
class. getSuperclass() | 获取当前Class的继承类Class |
List list = new ArrayList(); Class listClass = list.getClass(); Class superClass = listClass. getSuperclass(); |
Object.class | .class直接获取 | Class listClass = ArrayList.class; |
Class.forName(类名) | 用Class的静态方法,传入类的全称即可 | Class c = Class.forName("java.util.ArrayList"); |
Primitive.TYPE | 基本数据类型的封装类获取Class的方式 |
Class longClass = Long.TYPE; Class integerClass = Integer.TYPE; Class voidClass = Void.TYPE; |
Class. newInstance(); Class. getConstructor (new Class[]{}).newInstance(new Object[]{})
clazz. getConstructor(Class<?>... parameterTypes) . newInstance(Object... initargs)
下面看代码实例:
- Method对象--反射方法
- Field 对象--反射属性
- Spring框架的IOC的简化实现
- Java反射总结
只要用到反射,先获得Class Object
没有方法能获得当前类的超类的private方法和属性,你必须通过getSuperclass()找到超类以后再去尝试获得
通常情况即使是当前类,private属性或方法也是不能访问的,你需要设置setAccessible(true)(取消访问安全校验)来取得private的访问权。根据《编写高质量代码:改善Java程序的151个建议》书中介绍,除非一定要控制private安全访问,否则反射时都取消Java的安全访问校验(即设置setAccessible(true)),这样能提高反射性能。
Array对象并未讲解,请下来自己学习
相关推荐
java中的反射机制,pdf文档,常用的反射用法都有详细的说明。
图解java反射机制及常用应用场景_字母哥博客
对java反射机制常用类和方法,静态代理,动态代理有比较深入讲解
java中的常用反射机制详细分析案例,提供最详细的解析说明。
本Java视频教程适合有一定编程语言基础的学员观看,在本Java视频教程中讲解了Java面向对象、异常、数组、常用类、集合、IO流、线程、反射机制。该视频教程基于Java13进行讲解,Java13是目前Java最新版本。视频中讲师...
Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java SE编程入门教程 java封装继承多态(共56页).pptx Java SE编程入门教程 java集合(共38页).pptx Java SE编程...
讲解java的常用的反射机制,如何获取函数,类型等
Java SE完整版精品优质课件 自学入门必看的优秀Java基础知识培训教案 特别适合新入门自学的新手同学,也适合老手回顾学习,巩固知识 第1章 Java语言概述 第2章 基本语法 ...第13章 Java反射 第14章 网络编程
java vm很清楚你编写的class的结构,所以j2sdk提供了反射机制来动态的调用class的方法,举个例子,我们在调用对象的方法,常用的可能是obj.invokedmethod,而用发射机制,可以写成Invoker.invoke("className",...
Java反射机制与Class类1.Java反射机制1.1 反射机制是什么1.2 反射的应用场合1.3 反射的常用类1.4 反射使用步骤2. Class类2.1 常用方法和示例2.2 获取Class对象的 3 种方法2.3 反射创建对象的 2 种方法3. 工厂设计...
整理的Java反射的常用的一些方式,采用xmind的形式整理出来。希望有能够用到的。将java代码的各个组成部分封装为其他对象,可以在程序运行过程中操作这些对象,这就是java的反射机制;
里面有很多我做项目时候总结的ppt文档和示例。 包括很多一些Java机制用法和一下常用技术 希望大家喜欢
本文介绍了JAVA反射类的基本概念,欢迎阅读学习,一起进步。 文章目录一.反射的基本概念二.反射常用类三.使用反射的基本步骤四.Class类讲解(1)Class类是反射机制的起源和入口(2)Class类存放类的结构信息(3)...
未经允许禁止转载,转载请联系作者。 目录 一 反射(Reflect)初识 二 反射的基本使用和常用API 2.1 基本使用 2.2 反射获取一个对象的步骤 2.3 反射常用API 2.3.1 获取反射中的Class对象 ...4.1 Java反射机制的起源
Day07:反射机制与内部类 Day08:异常与Swing图形界面 Day09:swing图形界面与AWT事件模型 Day10:JFC基础类库(具体类查看API) Day11:多线程-进程与线程及方法 Day12:线程机制与I/O流的方法 Day13:I/O流的类与...
关于反射机制的面试题 常见的对于class的理解 对java底层的理解 适合初学者
反射机制.pdf 访问路经问题.pdf 基于MVC和RMI的分布.pdf 经典的查询方式.pdf 经典的显示方法.pdf 面向对象的实现.pdf 日期及其格式化.pdf 数字的格式化.pdf 网页之间共享数据.pdf 异常处理.pdf 在Eclipse中使用...
1.commons-beanutils.jar:提供对Java反射和自省API的包装,主要提供了对于 JavaBean进行各种操作。提供了对于JavaBean进行各种操作,克隆对象,属性等等. 2.commons-digester.jar:方便地将XML文档所定义的元素转化为...