Sonarqube 如何解决这个声纳规则?
Dodgy-从实例方法写入静态字段 这是它所指的一条线:Sonarqube 如何解决这个声纳规则?,sonarqube,Sonarqube,Dodgy-从实例方法写入静态字段 这是它所指的一条线: record.setEarliestTradeDate(earliestTradeDate = value.earliestTradeDate); 还有一些代码: Record record = getRecord(value.id); private static Date earliestTradeDate = null; public void setEarliestTradeDate(Date newValue) { earli
record.setEarliestTradeDate(earliestTradeDate = value.earliestTradeDate);
还有一些代码:
Record record = getRecord(value.id);
private static Date earliestTradeDate = null;
public void setEarliestTradeDate(Date newValue) { earliestTradeDate = newValue; }
它肯定不会导致任何类型的错误,但我想清除项目中任何红色标记的代码行。这是一个可以更改静态代码的提示
static Date earliestTradeDate
在实例方法中(即非静态)
这是(或可能是有问题的),因为对象的所有实例都可以更改该变量的状态。您可以通过使方法也是静态的来解决这个问题,这样静态变量将在静态上下文中更改。在我看来,这是正确的方法,因为最早的日期是代码中的某个固定点
public static void setEarliestTradeDate
或者将此日期作为实例变量:
private Date earliestTradeDate
这也可能是一个例子。这是一个提示,可以更改静态
static Date earliestTradeDate
在实例方法中(即非静态)
这是(或可能是有问题的),因为对象的所有实例都可以更改该变量的状态。您可以通过使方法也是静态的来解决这个问题,这样静态变量将在静态上下文中更改。在我看来,这是正确的方法,因为最早的日期是代码中的某个固定点
public static void setEarliestTradeDate
或者将此日期作为实例变量:
private Date earliestTradeDate
这也可能是一个例子