Sonarqube 如何解决这个声纳规则?

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

Dodgy-从实例方法写入静态字段

这是它所指的一条线:

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
这也可能是一个例子