public class ClassReflect
extends java.lang.Object
构造器和说明 |
---|
ClassReflect() |
限定符和类型 | 方法和说明 |
---|---|
static java.lang.Object |
execInAppContext(AppContext appContext,
ExecCallback callback)
以app的类加载器为线程上下文类加载器,执行回调函数
|
static java.lang.Class<?> |
forName(java.lang.String className,
java.lang.String appId)
在appId范围内查找类对象
|
static AppContext |
getAppContext(java.lang.Class<?> c)
根据类c获得自己所在的app上下文。
|
static java.lang.ClassLoader |
getClassLoaderByAppId(java.lang.String appId) |
static java.lang.reflect.Constructor |
getConstructor(java.lang.String className,
java.lang.Class[] parameterTypes)
从AWS主ClassLoader(所有app应用的父ClassLoader)构造一个类的 Constructor对象,它反映此
Class对象所表示的类的指定公共构造方法
|
static java.lang.reflect.Constructor |
getConstructor(java.lang.String className,
java.lang.Class[] parameterTypes,
AppContext appContext)
从指定的app应用对象构造一个类的 Constructor对象,它反映此 Class对象所表示的类的指定公共构造方法
|
static java.lang.reflect.Constructor |
getConstructor(java.lang.String className,
java.lang.Class[] parameterTypes,
java.lang.String appId)
从指定的appId构造一个类的 Constructor对象,它反映此 Class对象所表示的类的指定公共构造方法
|
static java.lang.Object |
getInstance(java.lang.String className,
java.lang.Class<?>[] parameterTypes,
java.lang.Object[] initargs)
从AWS主ClassLoader(所有app应用的父ClassLoader)声明类的新实例,并用指定的初始化参数初始化该实例
|
static java.lang.Object |
getInstance(java.lang.String className,
java.lang.Class<?>[] parameterTypes,
java.lang.Object[] initargs,
AppContext appContext)
从指定的app对象声明类的新实例,并用指定的初始化参数初始化该实例。
|
static java.lang.Object |
getInstance(java.lang.String className,
java.lang.Class<?>[] parameterTypes,
java.lang.Object[] initargs,
java.lang.String appId)
从指定的appId声明类的新实例,并用指定的初始化参数初始化该实例。
|
static java.net.URL |
getResource(java.lang.Class<?> c)
获得类文件对应的路径URL,参考:Class.getResource
|
public static java.net.URL getResource(java.lang.Class<?> c)
public static java.lang.Object execInAppContext(AppContext appContext, ExecCallback callback)
public static java.lang.Class<?> forName(java.lang.String className, java.lang.String appId) throws java.lang.ClassNotFoundException
className
- - 类路径appId
- - AWS AppIdjava.lang.ClassNotFoundException
public static java.lang.ClassLoader getClassLoaderByAppId(java.lang.String appId)
public static java.lang.Object getInstance(java.lang.String className, java.lang.Class<?>[] parameterTypes, java.lang.Object[] initargs) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.SecurityException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException
className
- 类名称,该类被AWS主ClassLoader加载,构造的对象是平台层Class资源parameterTypes
- 匹配的公共构造方法的 Constructor参数对象数组initargs
- 将作为变量传递给构造方法调用的对象数组java.lang.ClassNotFoundException
- 类未发现java.lang.NoSuchMethodException
- 找不到匹配的方法java.lang.SecurityException
- 如果存在安全管理器 s,并满足下列任一条件:调用
s.checkMemberAccess(this, Member.PUBLIC)
拒绝访问构造方法;调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess() 的调用拒绝访问该类的包java.lang.IllegalArgumentException
- 如果实参和形参的数量不同;如果基本参数的解包转换失败;如果在可能的解包后,无法通过方法调用转换将参数值转换为相应的形参类型
;如果此构造方法属于枚举类型。java.lang.reflect.InvocationTargetException
- 如果底层构造方法抛出异常java.lang.InstantiationException
- 如果声明底层构造方法的类表示抽象类java.lang.IllegalAccessException
- 如果此 Constructor 对象实施 Java
语言访问控制并且底层构造方法是不可访问的public static java.lang.Object getInstance(java.lang.String className, java.lang.Class<?>[] parameterTypes, java.lang.Object[] initargs, java.lang.String appId) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.SecurityException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException
className
- 类名称,该类被app的ClassLoader加载,如果该app没有classLoader,从AWS主ClassLoader寻找parameterTypes
- 匹配的公共构造方法的 Constructor参数对象数组initargs
- 将作为变量传递给构造方法调用的对象数组appId
- 应用Idjava.lang.ClassNotFoundException
- 类未发现java.lang.NoSuchMethodException
- 找不到匹配的方法java.lang.SecurityException
- 如果存在安全管理器 s,并满足下列任一条件:调用
s.checkMemberAccess(this, Member.PUBLIC)
拒绝访问构造方法;调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess() 的调用拒绝访问该类的包java.lang.IllegalArgumentException
- 如果实参和形参的数量不同;如果基本参数的解包转换失败;如果在可能的解包后,无法通过方法调用转换将参数值转换为相应的形参类型
;如果此构造方法属于枚举类型。java.lang.reflect.InvocationTargetException
- 如果底层构造方法抛出异常java.lang.InstantiationException
- 如果声明底层构造方法的类表示抽象类java.lang.IllegalAccessException
- 如果此 Constructor 对象实施 Java
语言访问控制并且底层构造方法是不可访问的public static java.lang.Object getInstance(java.lang.String className, java.lang.Class<?>[] parameterTypes, java.lang.Object[] initargs, AppContext appContext) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.SecurityException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException
className
- 类名称,该类被app的ClassLoader加载,如果该app没有ClassLoader,从AWS主ClassLoader寻找parameterTypes
- 匹配的公共构造方法的 Constructor参数对象数组initargs
- 将作为变量传递给构造方法调用的对象数组appContext
- 应用对象java.lang.ClassNotFoundException
- 类未发现java.lang.NoSuchMethodException
- 找不到匹配的方法java.lang.SecurityException
- 如果存在安全管理器 s,并满足下列任一条件:调用
s.checkMemberAccess(this, Member.PUBLIC)
拒绝访问构造方法;调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess() 的调用拒绝访问该类的包java.lang.IllegalArgumentException
- 如果实参和形参的数量不同;如果基本参数的解包转换失败;如果在可能的解包后,无法通过方法调用转换将参数值转换为相应的形参类型
;如果此构造方法属于枚举类型。java.lang.reflect.InvocationTargetException
- 如果底层构造方法抛出异常java.lang.InstantiationException
- 如果声明底层构造方法的类表示抽象类java.lang.IllegalAccessException
- 如果此 Constructor 对象实施 Java
语言访问控制并且底层构造方法是不可访问的public static java.lang.reflect.Constructor getConstructor(java.lang.String className, java.lang.Class[] parameterTypes) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.SecurityException
className
- 类名称,该类被AWS主ClassLoader加载,构造的对象是平台层Class资源parameterTypes
- 匹配的公共构造方法的 Constructor参数对象数组java.lang.ClassNotFoundException
- 类未发现java.lang.NoSuchMethodException
- 找不到匹配的方法java.lang.SecurityException
- 如果存在安全管理器 s,并满足下列任一条件:调用
s.checkMemberAccess(this, Member.PUBLIC)
拒绝访问构造方法;调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess() 的调用拒绝访问该类的包public static java.lang.reflect.Constructor getConstructor(java.lang.String className, java.lang.Class[] parameterTypes, java.lang.String appId) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.SecurityException
className
- 类名称,该类被app的ClassLoader加载,如果该app没有ClassLoader,从AWS主ClassLoader寻找parameterTypes
- 匹配的公共构造方法的 Constructor参数对象数组appId
- 应用Idjava.lang.ClassNotFoundException
- 类未发现java.lang.NoSuchMethodException
- 找不到匹配的方法java.lang.SecurityException
- 如果存在安全管理器 s,并满足下列任一条件:调用
s.checkMemberAccess(this, Member.PUBLIC)
拒绝访问构造方法;调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess() 的调用拒绝访问该类的包public static java.lang.reflect.Constructor getConstructor(java.lang.String className, java.lang.Class[] parameterTypes, AppContext appContext) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.SecurityException
className
- 类名称,该类被app的ClassLoader加载,如果该app没有ClassLoader,从AWS主ClassLoader寻找parameterTypes
- 匹配的公共构造方法的 Constructor参数对象数组appContext
- 应用对象java.lang.ClassNotFoundException
- 类未发现java.lang.NoSuchMethodException
- 找不到匹配的方法java.lang.SecurityException
- 如果存在安全管理器 s,并满足下列任一条件:调用
s.checkMemberAccess(this, Member.PUBLIC)
拒绝访问构造方法;调用者的类加载器不同于也不是当前类的类加载器的一个祖先,并且对
s.checkPackageAccess() 的调用拒绝访问该类的包public static AppContext getAppContext(java.lang.Class<?> c)
c
- AppContext中的某个类Copyright © Actionsoft Co., Ltd. All Rights Reserved.