Java反射API研究(2)——java.lang.reflect详细内容与关系

  对于最新的java1.8而言,reflect中接口的结构是这样的: 

  其中AnnotatedType下的几个子接口可以不用管,其他结构看起来还是很简单的。

  类的继承结构如下: 

  其中security下的几个可以先不管

  而对于java.lang.reflect.ReflectPermission来说,他的主要作用是去除反射默认的权限控制,允许直接操作对象的private等修饰符修饰的属性或者方法等。

  由于反射机制的默认行为受限于Java的访问控制,比如,访问私有的方法,字段,除非拥有访问权限,否则Java安全机制允许查看任意对象有哪些域,而不允许读它们的值(读取将抛异常)。然而如果一个Java程序没有受到安全管理器的控制,就可以覆盖访问控制。为了达到这个目的,就需要调用Field、Method、Constructor对象的setAccessible()方法。

  反射操作的 Permission 类。ReflectPermission 是一种指定权限,没有动作。当前定义的唯一名称是 suppressAccessChecks,它允许取消由反射对象在其使用点上执行的标准 Java 语言访问检查 - 对于 public、default(包)访问、protected、private 成员。

  该包的继承与实现图如下:

时间: 2024-12-15 06:56:17

Java反射API研究(2)——java.lang.reflect详细内容与关系的相关文章

Java反射API研究(4)——Class中的重要对象

一.Constructor与Method的父类:Executable Executable表示一个可执行类,构造方法与普通方法都是Executable AnnotatedType[] getAnnotatedExceptionTypes() AnnotatedType[] getAnnotatedParameterTypes() AnnotatedType getAnnotatedReceiverType() abstract AnnotatedType getAnnotatedReturnTy

JAVA反射系列之Field,java.lang.reflect.Field使用获取方法

JAVA反射系列之Field,java.lang.reflect.Field使用获取方法.   转载https://my.oschina.net/u/1407116/blog/209383 摘要 java.lang.reflect.Field使用 Field. 首先必须明一点 Field类主要是用来辅助获取和操作类的属性的! 1.怎么通过反射获取类的属性 先来看JDK提供的方法有如下几种: a)Class.getDeclaredField(String name);      返回一个 Fiel

JAVA 虚拟机深入研究(三)——Java内存区域

JAVA 虚拟机深入研究(一)--关于Java的一些历史 JAVA 虚拟机深入研究(二)--JVM虚拟机发展以及一些Java的新东西 JAVA 虚拟机深入研究(三)--Java内存区域 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的围城,城外的人想进去,城里的人想出来. Java运行的时候会把内存分为若干个,他们各有各的用途,每块区域的创建和销毁都是相对独立的,有的跟虚拟机一起混,有的则抱着用户的大腿同生共死. 按照第七版的<Java虚拟机规范>规定,JVM所管理的内存包括以下

Java反射机制研究

以前听同时说反射很强大,看了一些相关文章今天把反射总结一下. 说明:反射主要用于开发框架,即制作框架: 一.获得Class对象 Class<?> c = Class.forName("classname");   抛出ClassNotFoundException 二.获得实现接口 Class<?> inters[] = c.getInterfaces(); for(int i=0;i<inters.length;i++){ System.out.print

JDK1.7新特性(4):java语言动态性之反射API

直接通过一个代码示例来熟悉java中通过反射来对构造函数/域以及方法处理的相关API: 1 package com.rampage.jdk7.chapter2; 2 3 import java.lang.reflect.Array; 4 import java.lang.reflect.Constructor; 5 import java.lang.reflect.Field; 6 import java.lang.reflect.InvocationTargetException; 7 imp

Java反射机制的学习

Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法). 也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制.你会嗤之以鼻地告诉我,Java反射机制没啥用.或许在J2EE.J2SE等平台,Java反射机制没啥用(具体我也不了解,不多做评论),但是在Android应用开发中,该

[转载] Java反射机制的学习

本文转载自: http://www.blogjava.net/zh-weir/archive/2011/03/26/347063.html Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法). 也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制.你会嗤之以鼻地告诉我,Ja

java反射系列一

一.概念认知 1.1  ●Java ReflectionReflection (反射)是被视为动态语言的关键, 反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息, 并能直接操作任意对象的内部属性及方法 1.2 ●Java反射机制提供的功能?在运行时判断任意一 个对象所属的类 ?在运行时构造任意-个类的对象?在运行时判断任意一个类所具有的成员变量和方法 ?在运行时调用任意个对象的成员变量和方法 ?生成动态代理 1.3  Java反射机制研究及应用●反射相关的主要API

Java 反射机制及Annotation

转自:http://justjavac.iteye.com/blog/714654 Java 反射是 Java 语言的一个很重要的特征. 它允许运行中的 Java 程序对自身进行检查,并能直接操作程序的内部属性.例如,使用 它能获得 Java 类中各成员的名称并显示出来. Java 反射机制主要提供了以下功能: a .在运行时判断任意一个对象所属的类. b .在运行时构造任意一个类的对象. c .在运行时判断任意一个类所具有的成员变量和方法. d .在运行时调用任意一个对象的方法. 在 JDK