java反射机制基础

2019-10-29 16:08:42来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

java反射机制基础

1、首先创建一个抽象父类:

package classes;
public abstract class BasePrint { public abstract void print(); }

2、创建两个打印类继承抽象父类:

package classes;

public class print1 extends BasePrint{
    @Override
    public void print() {
        System.out.println("print1方法执行了");
    }
    
}
package classes;

public class print2 extends BasePrint {
    @Override
    public void print() {
        System.out.println("print2方法执行了");
    }
}

3、在创建一个properties配置文件,文件名为pro.properties

test1=classes.print1
test2=classes.print2

4、利用反射和多态调用打印类中的方法

package classes;

import java.io.FileInputStream;
import java.util.Properties;

public class TestPrint {
    public static void main(String[] args) throws Exception {
        //加载properties配置文件
        Properties pro = new Properties();
        pro.load(new FileInputStream("src/pro.properties"));
        //根据传入的test1键值得到类对象,用多态方式父类指向子类,调用子类方法
        String className = pro.getProperty("test1");
        Class cls = Class.forName(className);
        BasePrint print = (BasePrint) cls.newInstance();
        print.print();
    }
}

测试得到结果

print1方法执行了

结论: 

  利用好java反射和多态机制,可以在不改变代码的情况下,根据键值创建对应的类对象,通过多态方式执行不同类中具有相同功能的代码,当有新的需求时,只需在配置文件中添加对应的全类名即可。

  例如:服务器得到HTTP协议请求,更具不同的请求,执行不同的方法响应给浏览器。

  自己学习总结,希望也能帮到大家,有错误的地方,欢迎指出,一起进步。


原文链接:https://www.cnblogs.com/hpqbh/p/11762185.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equal

下一篇:JVM 参数配置