Java中的反射总结
反射是获取运行时类信息,即常量区中的Class信息。
要获取类信息,必然需要依据,不然系统怎么指定你要获取那个类信息,
类信息在java中就是Class类的一个对象,它是一个java类抽象,换句话说它代表了一个'类'(类本身是一种事物的抽象,在程序中它代表了这一事物,Class就是对这种类的一种抽象),
三种获取方式,
1).Class名称的字符串 Class.forName
2).根据Class获取, Integer.class
3).根据对象获取 (new Integer()).getClass
值得一提的是所有的Class对象的class仍然是class
下面来说一下这个Class类,
首先Class实现了Type,Type并没任何函数,是一个空接口,它只是代表这是一个类型
- package java.lang.reflect;
- public interface Type {
- }
另外它实现了AnnotatedElement接口,表示这是一个可以使用注解的元素。
- package java.lang.reflect;
- import java.lang.annotation.Annotation;
- public interface AnnotatedElement {
- boolean isAnnotationPresent(Class<? extends Annotation> annotationClass);
- <T extends Annotation> T getAnnotation(Class<T> annotationClass);
- Annotation[] getAnnotations();
- Annotation[] getDeclaredAnnotations();
- }
GenericDeclaration接口,表示这是一个可以被泛型化的元素,该接口获取一个TypeVariable数组,表示泛型参数,TypeVariable实现了Type接口,也就是说泛型的参数也是一个类型
- package java.lang.reflect;
- public interface GenericDeclaration {
- public TypeVariable<?>[] getTypeParameters();
- }
整个类关系如下:
Class下聚合了Field(字段),Method(方法),Constructor(构造方法)
这三个成员均继承自Member,也就是反射成员。
- package java.lang.reflect;
- public interface Member {
- public static final int PUBLIC = 0;
- public static final int DECLARED = 1;
- public Class<?> getDeclaringClass();
- public String getName();
- public int getModifiers();
- public boolean isSynthetic();
- }
Java中的反射总结的更多相关文章
- Java中的反射和注解
前言 在Java中,反射机制和注解机制一直是一个很重要的概念,那么他们其中的原理是怎么样呢,我们不仅仅需要会使用,更要知其然而之所以然. 目录 反射机制 反射如何使用 注解定义 注解机制原理 注解如何 ...
- java中的反射机制在Android开发中的用处
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反 ...
- 浅说Java中的反射机制(二)
写过一篇Java中的反射机制,不算是写,应该是抄了,因为那是别人写的,这一篇也是别人写的,摘抄如下: 引自于Java基础--反射机制的知识点梳理,作者醉眼识朦胧.(()为我手记) 什么是反射? 正常编 ...
- 浅说Java中的反射机制(一)
在学习传智播客李勇老师的JDBC系列时,会出现反射的概念,由于又是第一次见,不免感到陌生.所以再次在博客园找到一篇文章,先记录如下: 引用自java中的反射机制,作者bingoideas.(()为我手 ...
- java中动态反射
java中动态反射能达到的效果和python的语法糖很像,能够截获方法的实现,在真实方法调用之前和之后进行修改,甚至能够用自己的实现进行特别的替代,也可以用其实现面向切片的部分功能.动态代理可以方便实 ...
- 第89节:Java中的反射技术
第89节:Java中的反射技术 反射技术是动态的获取指定的类,和动态的调用类中的内容(没有类前就可以创建对象,将对象的动作完成,这就是动态的获取指定的类). 配置文件把具体实现的类名称定义到配置文件中 ...
- java笔记十:java中的反射
Java中,反射是一种强大的工具.它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接.反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而 ...
- 【Java基础】java中的反射机制与动态代理
一.java中的反射机制 java反射的官方定义:在运行状态下,可以获取任意一个类的所有属性和方法,并且可通过某类任意一对象实例调用该类的所有方法.这种动态获取类的信息及动态调用类中方法的功能称为ja ...
- java中使用反射获取pojo(实体)类的全部字段值
说起反射.不得不说它实在是太强大了,通过反射就能够轻轻松松拿到各种东东,假设你想在项目中解除对某个类的依赖,能够考虑用反射. 今天跟大家分享的是通过java中的反射,获取pojo类的全部字段值. 为什 ...
- java 中利用反射机制获取和设置实体类的属性值
摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同 ...
随机推荐
- python爬虫挂代理
以下是GET的方法,使用的代理接口网站是 http://www.xicidaili.com/nn/ #-*- coding:utf-8 -*- from bs4 import BeautifulSou ...
- IC卡热复位时序
热复位(warm reset):在时钟CLK和电源电压VCC处于激活状态的前提下,IC卡收到复位信号时产生的复位. 冷复位过程之后,如果收到的复位应答信号不满足规定,终端将启动热复位并从IC卡获得复位 ...
- Linux学习之路——文件查找:find
使用权限:所有角色 用法:find [ options ] [ expression ]( find path -expression [ -print ] [ -exec | -ok command ...
- C语言笔记1
第一部分 计算机常识 1,人与计算机交流 2,人机交互方式 3,计算机的组成结构 4,计算机的系统组成 5,进制 6,程序和指令 第二部C开发环境 1 人与计算机交流 现实中人与人交流靠语言,那么人 ...
- linux基础之bash特性
linux基础之bash特性 1.命令历史 命令历史包含的环境变量 $HISTSIZE:命令历史记录的条数 $HISTFILE:命令历史文件~/.bash_history $HISTFILESIZE: ...
- CCF-Markdown-201703-3
这道题不存在递归结构 比如区块之间的相互嵌套 还有"[ [] ]" 链接的相互嵌套, 所以直接处理就好了 还可以 #include <bits/stdc++.h> us ...
- 在微信小程序中,如何实现下拉刷新(模拟刷新)
一.在app.json中启动刷新, 在Windows 中, 添加 "enablePullDownRefresh":"true" 二.在需要刷新的页面中写(若是 ...
- python------Socket网略编程
上节课程回顾: 静态变量:与类无关,不能访问类里的任何属性和方法. 类方法:只能访问类变量. 属性:把一个方法变成静态属性, 反射: __new__:先于__init__执行: __call__: c ...
- Xamarin Android 下拉列表
<Spinner android:id="@+id/spinner" android:layout_width="wrap_content" androi ...
- java_oop_类
类的初始化顺序 再论类的组成 类的初始化顺序详解 变量 实例变量(成员变量) 类变量(静态变量) 方法 实例方法 ...