注解和反射

注解

内置注解
  • @Deprecated:过时
  • @SuppressWarnings(参数):抑制警告信息,不发黄代码, 类/方法上
    • all:所有
    • unchecked:告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
元注解

负责注解其它注解

  • @Target:用于描述注解的范围,即被描述的注解可以用在什么地方
  • @Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期 source<class<runtime
  • @Documented:说明该注解将被包含在javadoc中
  • @Inherited:说明子类可以继承父类中的注解
自定义注解
定义
@Target({ElementType.METHOD, ElementType.TYPE})//mehtod:方法上有效,type:类上有效
@Inherited//子类可以继承父类中的注解
@Retention(RetentionPolicy.RUNTIME)//Retention 表示注解在什么时候才有效,runtime(运行时)>class(class文件)>source(源码)
@Documented//Documentd 表示是否将我们的注解生成在java doc中
public @interface MyAnnotation {
    //参数类型+参数名()
    String name() default "";

    int age() default 0;

    int id() default -1;//如果默认值为-1,代表不存在

    String[] schools() default {"清华", "北大"};
}
使用
class Test {
    @MyAnnotation(age = 18, name = "zs")//参数不考虑顺序
    public void test() {

    }
}

反射

反射机制

允许程序在执行期借助Reflection api取得任何类的内部信息,并能操作任意对象的内部属性及方法

  • 正常方式:引入需要的"包类"名称-》new 实例化-》取得实例化对象
  • 反射:实例化对象-》getClass()方法-》取得完整的"包类"名称
Class类
  • Class cla=类.class

  • 对象.getClass()

  • Class.forName(全限定类名)

posted @ 2021-01-26 13:31  jpy  阅读(18)  评论(0)    收藏  举报