码迷,mamicode.com
首页 > 编程语言 > 详细

java基础之反射

时间:2017-10-17 20:55:39      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:rgs   修饰符   size   tool   设置   for   font   权限   stream   

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基础之反射

标签:rgs   修饰符   size   tool   设置   for   font   权限   stream   

原文地址:http://www.cnblogs.com/gg128/p/7683797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!