java反射机制基础

Posted hpqbh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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协议请求,更具不同的请求,执行不同的方法响应给浏览器。

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

以上是关于java反射机制基础的主要内容,如果未能解决你的问题,请参考以下文章

Java基础Java反射机制浅解

反射基础

反射机制入门

反射机制入门

反射机制入门

java反射-基础语法