为什么不能使用Constructor变量

nav*_*era 2 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");
    }
Run Code Online (Sandbox Code Playgroud)

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

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

Era*_*ran 12

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

public void  ServerConfig ()
Run Code Online (Sandbox Code Playgroud)

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

您应该将签名更改为:

public ServerConfig ()
Run Code Online (Sandbox Code Playgroud)

构造函数没有返回类型.