A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵永旗 初级黑马   /  2019-5-19 10:12  /  830 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反射
配置文件一般放在src包下
模拟框架
public class Person {
    public void eat(){
        System.out.println("人吃菜");
    }
}
PZwenjian
className=com.itheima.Person
methodName=ea
public class D1 {
    public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException {
        Properties p = new Properties();
        InputStream is= D1.class.getClassLoader().getResourceAsStream("PZwenjian");
        p.load(is);
        is.close();
        String className = p.getProperty("className");
        String methodName = p.getProperty("methodName");
        Class c = Class.forName(className);
        Constructor con = c.getConstructor();
        Object o = con.newInstance();
        Method m = c.getMethod(methodName);
        m.invoke(o);
单元测试 三个注解
@before  功能方法之前执行
@test   Assert.         
@after  功能方法之后执行
注解
@override 检测方法是否继承自父类(接口)
@Deprecated  提示方法已过时
@SuppressWarnings  压制警告  一般传递参数"all"
@function    用于检测接口是否是函数式接口
自定义注解
属性 : 接口的抽象方法
1:返回值类型有下列
基本数据类型  String   枚举  注解    以上类型的注解
2:定义了属性,在需要时需要给属性赋值
1 如果赋值时 ,使用了default关键字给属性赋值,使用时可以不给属性赋值
2如果属性名叫value描述注解能够作用的位置 且只有一个属性   赋值时value可以省略
3数组赋值时需要{}   
元注解:用于描述注解的注解
1@target  :描述注解能够作用的位置
ElementType 取值
type 类上
method 方法上
file   变量上

2@Retention: 描述注解被保留的阶段
source
class
runtime 一般都是这个值
@Retention(@Retentionpolicy.runtime )  保留到runtime期间
3@Dcumented  表示该注解会被抽取到doc文档中
4@inherited   表示注解会自动被子类继承
解析注解  获取注解中的属性的值
1 获取定义注解的class对象
2 获取注解对象 getAnnotation(注解名.class)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马