【发布时间】:2018-06-29 12:00:59
【问题描述】:
你能改变它来满足 sonarLint 吗?如果我不做赋值,我的变量的值为 null ...
@SpringBootApplication
public class BwsApplication {
private static ConfigClass config;
public BwsApplication(ConfigClass configClass) {
config = configClass;//SONAR - Remove this assignment of "config"
}
public static void main(String[] args) throws SQLException {
SpringApplication.run(BwsApplication.class, args);
Connection con = config.getConnection();
int number = StudentsManager.getStudentsNumber(con);
QuartzApp qa = new QuartzApp(config);
qa.excecution(number );
}
}
“静态字段不应在构造函数中更新” 我需要在静态上下文中使用变量!
【问题讨论】:
-
您可以声明
public static void init(ConfigClass configClass) { config = configClass; },而不是在构造函数中进行赋值。如果您知道只有一个BwsApplication实例存在,请将其设为 Singleton。 -
这有什么意义?你明白为什么在构造函数中更新静态字段没有意义吗?你是什么意思,你需要在静态上下文中使用变量,为什么你需要为每个实例更改它(另外:现有实例是否应该与传递给新实例的值相同)?跨度>
标签: java spring-boot