как бороться с ошибкой "dead store to local variable" в java?


Я написал простой тестовый код. Это круг. Я полагаю, что большинство людей могут представить себе, что такое класс circle, поэтому я не буду вставлять его.

В тестовом коде я пытаюсь проверить конструктор circle с недопустимой точкой и предполагаю создать исключение. Но возникает ошибка. Я проверяю онлайн, но до сих пор не знаю, как решить эту проблему. Кто-нибудь может мне помочь? Спасибо

Кодовая информация, ошибка находится в последнем предложении следующего кода

/**
 * Tests that the Circle constructor throws an exception for center Point. 
 */
@Test (expected = IllegalArgumentException.class)
public void testIllegalCenter() {
  //Instantiates a circle with an incorrect center point.
    @SuppressWarnings("unused")
    final Circle testCircle = new Circle(VALID_RADIUS, INVALID_POINT, VALID_COLOR);
}

Сообщение об ошибке

Ошибка: Мертв хранить до testCircle в CircleTest.testIllegalCenter ()

Эта инструкция присваивает значение локальной переменной, но это значение не считывается и не используется ни в одной последующей инструкции. Часто это указывает на ошибку, поскольку вычисленное значение никогда не используется.

Обратите внимание, что компилятор javac Sun часто создает мертвые хранилища для конечных локальных переменных. Поскольку FindBugs-это инструмент, основанный на байт-коде, нет простого способа устранить эти ложные срабатывания.

1 3

1 ответ:

Просто удалите переменную и вызовите конструктор следующим образом:

@Test (expected = IllegalArgumentException.class)
public void testIllegalCenter() {
    new Circle(VALID_RADIUS, INVALID_POINT, VALID_COLOR);
}