`

反射_

阅读更多

Class

Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。

Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机通过类加载器的 defineClass 方法自动构造。

 

public static Class<?> forName(String name, boolean initialize, ClassLoader loader)
T newInstance() 必须具备无参构造器

URL getResource(String name)  委托 ClassLoader.getSystemResource(java.lang.String)。
InputStream getResourceAsStream(String name)  委托 ClassLoader.getSystemResourceAsStream(java.lang.String)。
 
ClassLoader getClassLoader() 返回该类的类加载器。


public Constructor<?>[] getConstructors()  如果该类没有公共构造方法,或者该类是一个数组类,或者该类反映一个基本类型或 void,则返回一个长度为 0 的数组。

public Constructor<?>[] getDeclaredConstructors  如果此 Class 对象表示一个接口、一个基本类型、一个数组类或 void,则此方法返回一个长度为0的数组。
public Method[] getDeclaredMethods()
public Field[] getDeclaredFields()

public Field getDeclaredField(String name)
public Method getDeclaredMethod(String name, Class<?>... parameterTypes)

boolean isEnum() 
boolean isArray() 
boolean isAnnotation()
boolean isInterface()
boolean isPrimitive() 判定指定的 Class 对象是否表示一个基本类型。
       
boolean isInstance(Object obj) 判定指定的 Object 是否与此 Class 所表示的对象赋值兼容。   

 

 

Method

String getName() 
int getModifiers() 
Class<?>[] getParameterTypes()
Class<?> getReturnType() 
Object invoke(Object obj, Object... args) 
如果底层方法是静态的,那么可以忽略指定的 obj 参数。该参数可以为 null。
如果底层方法所需的形参数为 0,则所提供的 args 数组长度可以为 0 或 null。

 

Construction

int getModifiers() 
Class<?>[] getParameterTypes() 
T newInstance(Object... initargs)   
 
 

Field

Object get(Object obj)
Class<?> getType() 
void set(Object obj, Object value)   如果底层字段是静态字段,则忽略 obj 变量;它可能为 null。
 

 

Proxy

static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)

static Class<?> getProxyClass(ClassLoader loader, Class<?>... interfaces) 

static boolean isProxyClass(Class<?> cl)  
 
interface InvocationHandler
Object invoke(Object proxy, Method method, Object[] args) throws Throwable

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics