注解(Java.Annotation)
注解与注释并不相同,注释是给人看的,而注解是不仅给人看,而且还是给机器看的,注解是JDK 5.0 引入的新技术,注解最主要的功能是可以被其它程序(如编译器)读取。
内置注解
@Override、@Deprecated、@SuppressWarnings
元注解
元注解的作用就是解释其它注解的注解(比如注解你自定义的注解),一共有四个,分别是:
@Target:表示注解(你自定义的注解,下同)的作用范围
@Retention:描述注解的生命周期
@Document:说明该注解将被包含在javadoc中
@Inherited:说明子类可以继承父类中的注解
反射
获取类对象
1、类名字.class方法
2、对象名.getclass方法(几乎不用)
3、Class.forName(“包名+类名”)
获得类的名字
getName()方法
getSimpleName方法
获得类的属性
getFields方法,只能找到声明为public类型的属性,少一个s可以找指定属性
getDeclaredFields方法,可以找到全部属性
(tip:只要加上Declared,就可以找出全部属性
获取类的方法
getMethods方法,同上,不同的是可以获得本类及其父类的全部public方法,当少写一个s获取指定方法时,该方法需要什么参数,就需要丢类对象进去,空参时需要丢null进去
getDeclaredMethods方法,同上,只能获得本类的所有方法
获取类的构造器
getConstuctors方法
getDeclaredConstructors方法
动态创建对象
newInstance方法,第一步先获取类对象,再进行User user = (User)类对象.newInstance
通过构造器创建对象,有参与无参的区别,是constuctor.newInstance
通过反射获取一个方法
第一步:先获取方法
第二部:方法名.invoke(对象,参数)
通过反射操作属性
第一步:获得属性
第二步:.setAccessible(true),关掉权限,仅私有而已
XMind - Trial Version