使用类中的静态代码加载属性文件

时间:2014-03-26 18:22:41

标签: java

我有一个'PropertiesUtil'类,用于从配置文件中读取属性。该课程的代码如下:

public class PropertiesUtil {

  public static Properties prop;
  public static String databaseConnectivityString;
  public static String databaseUserName;
  public static String databaseUserPassword;

  static {
      try {
          prop.load(new FileReader(new File("config.prop")));
          databaseConnectivityString = prop.getProperty("databaseConnectivityString");
          databaseUserName = prop.getProperty("databaseUserName");
          databaseUserPassword = prop.getProperty("databaseUserPassword");
      } catch (IOException | NumberFormatException ex) {
          LoggerUtil.getLogger().severe("Problem loading or Reading Configuration file");
      }
  }
}

当我使用main方法从另一个类'Test'调用以下代码时,我得到一个NullPointerException。 “测试”类的代码如下。请帮我解决问题。

public class Test {
  public static void main(String... args) throws IOException {
      System.out.println(PropertiesUtil.databaseUserName);
  }
}

1 个答案:

答案 0 :(得分:4)

立即初始化你的领域。

public static Properties prop = new Properties();

否则该字段仍为null并取消引用

prop.load(new FileReader(new File("config.prop")));

会导致NullPointerException