zoukankan      html  css  js  c++  java
  • 第四课:通过配置文件获取对象(Spring框架中的IOC和DI的底层就是基于这样的机制)

    首先在D盘创建一个文件hero.txt,内容为:com.hero.Hero(此处必须是Hero的完整路径)

    接下来是Hero类

    package com.hero;
    
    public class Hero {
        String name;
        int id;
    
        public Hero() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        public Hero(String name, int id) {
            super();
            this.name = name;
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        static String copyright;
    
        static {
            System.out.println("初始化 copyright");
            copyright = "版权由Riot Games公司所有";
        }
    
        @Override
        public String toString() {
            return "Hero [name=" + name + ", id=" + id + "]";
        }
    
    }

    然后是Test类测试

    package com.hero;
     
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.lang.reflect.Constructor;
    import java.lang.reflect.InvocationTargetException;
     
     
    public class TestReflection4 {
        public static void main(String[] args) throws InterruptedException {
            Hero h = getHero();
            System.out.println(h);
        }
     
        public static Hero getHero() {
     
            File f = new File("D:/hero.txt");
     
            try (FileReader fr = new FileReader(f)) {
                String className = null;
                char[] all = new char[(int) f.length()];
      //把文件里的数据读到all这个char数组里面 fr.read(all);
      //String的构造方法,也可以用className=String.valueOf(all); className
    = new String(all); Class clazz=Class.forName(className); Constructor c= clazz.getConstructor(); Hero h= (Hero) c.newInstance(); h.setName("a"); return h; } catch (Exception e) { e.printStackTrace(); return null; } } }
  • 相关阅读:
    MySQL (一)(未完成)
    HTML 学习笔记 CSS3 (边框)
    HTML 学习笔记 JavaScript (函数)
    HTML 学习笔记 JavaScript (对象)
    HTML 学习笔记 JavaScript (变量)
    HTML 学习笔记 JavaScript (实现)
    HTML 学习笔记 JavaScript(简介)
    iOS RunTime运行时(1):类与对象
    iOS UITableView 分割线从零开始
    HTML 学习笔记 CSS(选择器4)
  • 原文地址:https://www.cnblogs.com/XJJD/p/7173148.html
Copyright © 2011-2022 走看看