为什么无法使用Constructor变量

时间:2015-06-16 08:25:32

标签: java

我想使用已经在构造函数中设置的变量,但它返回null。

这是我的代码:

public class ServerConfig {

    private String ServerDbUrl;
    static String ServerDbUsername;
    static String ServerDbPassword;
    static String ServerDbName;
    private XMLConfiguration config; 

    public void  ServerConfig () {
        try {
            config = new XMLConfiguration(getClass().getResource("/config.xml"));
            // config.setExpressionEngine(new XPathExpressionEngine());

            //assign value;
            ServerDbUrl = config.getString("database.url");
            ServerDbUsername = config.getString("database.username");
            ServerDbPassword = config.getString("database.password");
            ServerDbName = config.getString("database.name");              
       } catch (Exception e) {
           System.out.println(e);
       }
    }

    public String GetServerDbUrl() {
        //return ServerDbUrl;
        return config.getString("database.url");
    }

在函数GetServerDbUrl()上,我想获取ServerDbUrlconfig.getString()它将返回null或错误堆栈。

我知道这个新手问题,但我希望这将有助于将来像我这样的新手。任何建议。感谢。

1 个答案:

答案 0 :(得分:12)

这不是构造函数,它是常规方法。

public void  ServerConfig ()

因此,创建ServerConfig的实例并不执行此方法,并且您的实例变量仍然未初始化。

您应该将签名更改为:

public ServerConfig ()

构造函数没有返回类型。