22-[注解-反射]

  • 能够通过反射技术获取Class字节码对象(重点)
    class文件对象的三种获取方式:
    1.可以使用Object类中的方法getClass()来获取
    Class<?> getClass() 返回此 Object 的运行时类。
    2.可以使用类名.class属性的方式获取
    java为每种数据类型(基本数据类型4类8种,引用数据类型(数组,类,接口))都赋予了一个class属性
    int.class,String.class,Person.class,ArrayList.class
    3.可以使用Class类中的静态方法forName()来获取
    static Class<?> forName(String className) 返回与带有给定字符串名的类或接口相关联的 Class 对象。
    参数:
    tring className:全类名(包名+类名)

  • 能够通过反射技术获取构造方法对象,并创建对象。
    1.获取对应类的class文件对象
    2.使用class文件对象中的方法getConstructor(“参数”)/getConstructors()获取构造方法Constructor
    3.使用构造方法Constructor中的方法newInstance实例化对象

    简化格式:(重点)
    1.获取类的class文件对象
    2.使用class文件对象中的方法newInstance实例化对象

  • 能够通过反射获取成员方法对象,并且调用方法。(重点)
    1.获取类对应的class文件对象
    2.通过class文件对象中的方法getMethod(参数)/getMethods()获取类中的成员方法Method
    3.使用Method类中的方法invoke执行获取到的成员方法

  • 能够通过反射获取属性对象,并且能够给对象的属性赋值和取值(了解)。
    1.获取Person类的class文件对象
    2.使用class文件对象中的方法getField/getFields获取类中的成员变量Field
    3.使用Field类中的方法set给成员变量赋值,get获取成员变量的值

  • 能够说出注解的作用
    1.使用javadoc.exe生成帮助文档:里边可以包含注解@author和@version
    2.编译检查:@Override @FunctionalInterface

  • 能够自定义注解和使用注解(重点)
    定义格式:
    public @interface 注解名称{
    修饰符 返回值类型/数据类型 属性名();
    修饰符 返回值类型/数据类型 属性名() default 属性值;
    }
    使用格式:
    没有属性:@注解名
    有属性:@注解名(属性名=属性值,属性名=属性值…)

  • 能够说出常用的元注解及其作用(重点)
    java.lang.annotation.Retention:用来声明自定义注解的生命周期(.java文件,.class文件,内存中)
    java.lang.annotation.Target:用来声明自定义注解可以使用的位置

  • 能够解析注解并获取注解中的数据(使用)
    就是获取注解的属性值==>使用反射技术
    isAnnotationPresent 判断(类上,方法上…)是否有指定的注解
    getAnnotation 获取(类上,方法上…)的注解

  • 能够完成注解的MyTest案例(重点)
    模拟Junit
    方法上如果使用了自定义注解@MyTest,就让这个方法执行
    方法上如果没有使用自定义注解@MyTest,就不让这个方法执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值