JavaAPI之AccessibleObject
2016-06-05 16:59
471 查看
结构:java.lang.reflect类 AccessibleObject
java.lang.Object java.lang.reflect.AccessibleObject所有已实现的接口: AnnotatedElement直接已知子类: Constructor,Field, Method描述:
public class AccessibleObject extends Object implements AnnotatedElementAccessibleObject 类是 Field、Method 和 Constructor 对象的基类。它提供了将反射的对象标记为在使用时取消默认 Java 语言访问控制检查的能力。对于公共成员、默认(打包)访问成员、受保护成员和私有成员,在分别使用 Field、Method 或 Constructor 对象来设置或获取字段、调用方法,或者创建和初始化类的新实例的时候,会执行访问检查。在反射对象中设置 accessible 标志允许具有足够特权的复杂应用程序(比如 Java Object Serialization 或其他持久性机制)以某种通常禁止使用的方式来操作对象。从以下版本开始: 1.2 另请参见:
Field,
Method,
Constructor,
ReflectPermission构造方法:
protected AccessibleObject()构造方法:仅供 Java 虚拟机使用。方法详细1、public static void setAccessible(AccessibleObject[] array, boolean flag) throwsSecurityException 使用单一安全性检查(为了提高效率)为一组对象设置 accessible 标志的便捷方法。 首先,如果存在安全管理器,则在
ReflectPermission("suppressAccessChecks")权限下调用
checkPermission方法。 如果
flag为
true,但是不能更改输入
array的任何元素的可访问性(例如,如果元素对象是
Class类的
Constructor对象),则会引发
SecurityException。如果发生 SecurityException,对于少于(不包括)发生异常的元素的数组元素,可以将对象的可访问性设置为
flag;对于超出(包括)引发异常的元素的那些元素,则不更改其可访问 性。 参数:
array- AccessibleObjects 的数组
flag- 每个对象中的 accessible 标志的新值 抛出:
SecurityException- 如果请求被拒绝。 另请参见:
SecurityManager.checkPermission(java.security.Permission),
RuntimePermission2、public void setAccessible(boolean flag) throwsSecurityException
将此对象的 accessible 标志设置为指示的布尔值。值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。
首先,如果存在安全管理器,则在 [code]ReflectPermission("suppressAccessChecks")权限下调用
checkPermission方法。[/code]
如果 [code]flag为
true,并且不能更改此对象的可访问性(例如,如果此元素对象是
Class类的
Constructor对象),则会引发
SecurityException。[/code]
如果此对象是 [code]java.lang.Class类的
Constructor对象,并且
flag为 true,则会引发
SecurityException。[/code]
参数:[code]flag- accessible 标志的新值[/code]
抛出:[code]SecurityException- 如果请求被拒绝。[/code]
另请参见:[code]SecurityManager.checkPermission(java.security.Permission),
RuntimePermission
3、public boolean isAccessible()
获取此对象的 accessible 标志的值。
返回:此对象的 accessible 标志的值。
4、public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
从接口 [code]AnnotatedElement复制的描述 [/code]
如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。
指定者:接口 [code]AnnotatedElement中的
getAnnotation
参数:[code]annotationClass- 对应于注释类型的 Class 对象 [/code]
返回:如果该元素的指定注释类型的注释存在于此对象上,则返回这些注释,否则返回 null
抛出: [code]NullPointerException- 如果给定的注释类为 null[/code]
从 以下版本开始: 1.5
5、public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
从接口 [code]AnnotatedElement复制的描述 [/code]
如果指定类型的注释存在于此元素上,则返回 true,否则返回 false。此方法主要是为了便于访问标记注释而设计的。
指定者:接口 [code]AnnotatedElement中的
isAnnotationPresent
参数:[code]annotationClass- 对应于注释类型的 Class 对象 [/code]
返回:如果指定注释类型的注释存在于此对象上,则返回 true,否则返回 false
抛出: [code]NullPointerException- 如果给定的注释类为 null[/code]
从以下版本开始: 1.5
6、public Annotation[] getAnnotations()
从接口 [code]AnnotatedElement复制的描述 [/code]
返回此元素上存在的所有注释。(如果此元素没有注释,则返回长度为零的数组。)该方法的调用者可以随意修改返回的数组;这不会对其他调用者返回的数组产生任何影响。
指定者:接口 [code]AnnotatedElement中的
getAnnotations
返回:此元素上存在的所有注释
从以下版本开始: 1.5
7、public Annotation[] getDeclaredAnnotations()
从接口 [code]AnnotatedElement复制的描述 [/code]
返回直接存在于此元素上的所有注释。与此接口中的其他方法不同,该方法将忽略继承的注释。(如果没有注释直接存在于此元素上,则返回长度为零的一个数组。)该方法的调用者可以随意修改返回的数组;这不会对其他调用者返回的数组产生任何影响。
指定者:接口 [code]AnnotatedElement中的
getDeclaredAnnotations
返回:直接存在于此元素上的所有注释
从以下版本开始: 1.5
相关文章推荐
- eclipse基本操作_Object类_equals()_==_hashCode()_getClass()
- Objective-C中#import如何规避多文件结构导致的重复包含;以及@class作用
- Effective Objecttive-C 2.0
- git 错误 fatal: Not a valid object name: 'master'.
- 论文笔记之:Multiple Object Recognition With Visual Attention
- [Objective-C] Copy 和 MutableCopy
- 【原】谈谈对Objective-C中代理模式的误解
- 【REACT NATIVE 系列教程之十二】REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信
- Guava base -- MoreObjects
- Guava base -- Objects
- 第八天 java转Objective-C工具 J2ObjC
- -------------GetObject详解
- 枚举宏(Adopting Modern Objective-C)
- (java:11276): GLib-GObject-WARNING **: cannot register existing type `GdkDisplayManager'
- org.hibernate.ObjectDeletedException: deleted instance passed to merge
- objective-C 编程全解-第05章 基于引用计数的内存管理 下
- objective-C 编程全解-第05章 基于引用计数的内存管理 中
- objective-C 编程全解-第05章 基于引用计数的内存管理 上
- 无法将类型“System.Nullable`1”强制转换为类型“System.Object”。LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型。
- NSObjCRuntime, NSZone, NSObject报错Unknown