Day14_80_反射机制+IO+Propreties动态创建对象

反射机制+IO+Propreties动态创建对象

* 使用Properties文件,在文件中通过<key value>的形式保存一下类名,然后通过IO 获取该类名,再然后利用反射机制得到该类名就可以动态的创建对象,不用再程序一开始就写死,这样回更加灵活。


* 示例代码:

  - Properties文件中写classname=java.util.Date

  import java.io.FileInputStream;
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.text.SimpleDateFormat;
  import java.util.Date;
  import java.util.Properties;

  public class ReflectAndIOAndProperties {
      public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException {

          //创建Properties属性对象
          Properties properties=new Properties();

          //创建输入流
          FileInputStream fileInputStream=new FileInputStream("C:\\Users\\SHIGE\\Desktop\\classinfo.properties");

          //将流中的数据加载到对象中
          properties.load(fileInputStream);

          //关闭流
          fileInputStream.close();

          //获取Value
          String value=properties.getProperty("classname");

          // 创建对象
           Class c=Class.forName(value);
           Object object=c.newInstance();

          //输出对象
            if(object instanceof Date){
                Date date=(Date)object;
                System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date));
            }

      }
  }
posted @ 2021-04-09 15:44  失昼  阅读(59)  评论(0)    收藏  举报