首页 > 其他分享 >反射案例以及注解的概念

反射案例以及注解的概念

时间:2022-08-25 21:57:42浏览次数:57  
标签:反射 配置文件 pro public 案例 注解 代码 加载

反射案例

  • 需求:写一个"框架",可以帮我们创建任意类的对象,并且执行其中的任意方法
    • 实现:
      1. 实现文件
      2. 反射,    
    • 步骤:  
      1. 将需要创建对象的全类名和需要执行的方法定义在配置文件中
      2. 在程序中加载读取配置文件
      3. 使用反射技术来加载类文件进内存
      4. 创建对象
      5. 执行方法    

 创建配置文件:

 

 

框架代码:

/*
    框架类
 */
public class demo_05 {
    public static void main(String[] args) throws Exception {
        //可以创建任意类的对象,可以执行任意方法
        /*
            前提:不能改变该类的任何代码,可以创建任意类的对象,可以执行任意方法
         */
//        Person person = new Person();
//        person.eat();
//        Student student = new Student();
//        student.sleep();

        //1.加载配置文件
        //1.1创建Properties对象
        Properties pro = new Properties();
        //1.2加载配置文件,转换为一个集合
        //1.2.1获取class目录下的配置文件(获取对应文件下的加载器)
        ClassLoader classLoader = demo_05.class.getClassLoader();//getClassLoader():加载器
        InputStream resourceAsStream = classLoader.getResourceAsStream("pro.properties");//资源对应的字节流
        pro.load(resourceAsStream);  //传入字节流

        //2.获取配置文件中定义的数据
        String className = pro.getProperty("className");
        String methodName = pro.getProperty("methodName");

        //3.加载该类进内存
        Class<?> aClass = Class.forName(className);
        //4.创建对象
        Object o = aClass.newInstance();
        //5.获取方法对象
        Method method = aClass.getMethod(methodName);
        //6.执行方法
        method.invoke(o);

    }
}

运行结果:

 

 

注解-概念

概念:说明程序的。给计算机看的

注释:用文字描述程序的。给程序员看的

定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。

    它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

 概念描述:

  JDK1.5之后的新特性

  说明程序的
使用注解:@注解名称

作用分类:

​   1.编写文档:通过代码里标识的注解生产文档(生产文档doc文档)

​   2.代码分析:通过代码里标识的元数据对代码进行分析(使用反射)

​   3.编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查(Override)

/**
 * 注解演示
 */
public class AnnoDemo1 {
    /**
     * 计算两数的和
     * @param a 整数
     * @param b 整数
     * @return 两数的和
     */
    public int add(int a,int b){
        return a+b;
    }
}

 

标签:反射,配置文件,pro,public,案例,注解,代码,加载
From: https://www.cnblogs.com/qihaokuan/p/16625733.html

相关文章