Как мне решить это правило сонара? - PullRequest
1 голос
/ 23 февраля 2012

Хитрый - Запись в статическое поле из метода экземпляра

Это строка, к которой она относится:

record.setEarliestTradeDate(earliestTradeDate = value.earliestTradeDate);

Еще немного кода:

Record record = getRecord(value.id);
private static Date earliestTradeDate = null;
public void setEarliestTradeDate(Date newValue) { earliestTradeDate = newValue; }

Это определенно не вызывает каких-либо ошибок, но я бы хотел очистить проекты от любых красных строк кода.

1 Ответ

1 голос
/ 24 февраля 2012

Это намек на то, что можно поменять статический

static Date earliestTradeDate

в методе экземпляра (т. Е. Не статично)

public void setEarliestTradeDate

Это (или может быть проблематично), потому что все экземпляры вашего объекта могут изменять состояние этой переменной.
Вы можете исправить это, сделав метод статичным, так что статическая переменная будет изменена только в статическом контексте. Мне кажется, что это правильный подход, потому что самая ранняя дата - это фиксированная точка где-то в вашем коде.

public static void setEarliestTradeDate

Или сделать эту дату переменной экземпляра:

private Date earliestTradeDate

Это также может относиться к одноэлементному шаблону .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...