【发布时间】:2019-04-25 01:29:46
【问题描述】:
我有这样的课
public class CustomRestClient {
private static String dbString;
public CustomRestClient(String db) {
this.dbString = db;
}
static {
try {
Client.setServer(Client.Server.LOCAL);
AuthenticationProvider provider = new AuthenticationProvider();
provider.setCredentialsProvider(new SimpleCredentialsProvider("user", "pass", dbString, "secretkey"));
Client.setAuthenticationProvider(provider);
Client.login();
} catch (ClientException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CustomRestClient customRestClient = new CustomRestClient("db");
}
}
我正在尝试在静态块中传递构造函数参数
provider.setCredentialsProvider(new SimpleCredentialsProvider("user", "pass", dbString, "secretkey"));
例如,CustomRestClient customRestClient = new CustomRestClient("db"); 应将静态块内的dbString 字段设置为db。但是当我运行程序时,它说dbString 字段为空。我不知道我做错了什么
【问题讨论】:
-
静态块在构造函数执行之前运行。你试图做的事情是不可能的
标签: java constructor static static-block