java基础之反射

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础之反射相关的知识,希望对你有一定的参考价值。

1.  反射生成class对象的三种方式

1) 通过对象类型的getclass方法来获得class对象

InputStream is=this.getClass().getClassLoader().getResourceAsStream(path);

2) 类加载器通过class对象的静态方法forname来获得

String driver = ps.getProperty("driver");

Class.forName(driver);

3) 通过指定类型的class来获得

public class jdbctools {

InputStream is = jdbctools.class.getClassLoader().getResourceAsStream("jdbc.properties");

}

2. class常用方法

1)getAnnotation(Class<A> annotationClass):获得指定类型的注释

2getAnnotations():获得所有的注释

3getClassLoader()类加载器

4getConstructors():返回所有公有的构造方法

Class clazz = Class.forName("reflect.student");

clazz.getDeclaredConstructors();

5)getConstructor(Class<?>... parameterTypes):返回指定公有的构造方法,没有会显示没有这种方法异常

Constructor<?> constructor = clazz.getConstructor(String.class,int.class);

6) getDeclaredConstructor(Class<?>... parameterTypes):获取含私有构造方法

7) getDeclaredConstructors():获取所有构造方法

8)getDeclaredField(String name):获取含私有属性

clazz.getDeclaredField("name");

9)getDeclaredFields():获取所有属性

10)getDeclaredMethod(String name, Class<?>... parameterTypes):获取包含私有方法

    clazz.getDeclaredMethod("name",String.class);

11)getDeclaredMethods():获取所有方法

12)getField(String name):获取公有属性

13)getFields():获取所有私有属性

14)getGenericInterfaces():获取类或接口的直接实现

15)getGenericSuperclass():直接超类

  Type gentype = clazz.getGenericSuperclass()

16)getModifiers()获取修饰符

 

17)getSuperclass():表示实体的超类

  for(Class clazz=obj.getClass();clazz != Object.class; clazz.getSuperclass()){}

18)newInstance() :无参构造产生对象

3.field常用方法

getGenericType():获取声明类型

getModifiers():获取修饰权限

field.getModifiers()

set(Object obj, Object value):设置值

field.set(obj, param);

setAccessible(boolean flag):设置是否去除权限

field.setAccessible(true);

get(Object obj):获取值

field.get(object);

4.method

invoke(Object obj, Object... args):调用方法

method.invoke(obj, parame);

setAccessible(boolean flag):设置是否去除权限

 method.setAccessible(true);

以上是关于java基础之反射的主要内容,如果未能解决你的问题,请参考以下文章

java 反射代码片段

Java基础学习笔记二十三 Java核心语法之反射

Java基础之反射

java基础之----反射

Java 基础之详解 Java 反射机制

Java基础之反射