Singleton clase Java puede tener constante variable estática? pelusa de error del sonar

Ashutoshg:

En la clase de Java Singleton, quiero hacer un final constante, como a continuación código.

  1. private final int threshold = 3; // Ejemplo de código Noncompliant por Sonal pelusa
  2. private static final int THRESHOLD = 3; // código RoHS por Sonarlint

Mi pregunta es, ¿por qué la clase Singleton debe tener la staticpalabra clave en un final int/ stringconstante a medida que esta clase tiene sólo una instancia?

Mureinik:

Esta es probablemente una advertencia de que Sónar pelusa no puede reconocer. Es bastante difícil de reconocer un producto único con el análisis estático, por lo que sólo optaron por hacer caso omiso de esta advertencia y emitir una advertencia de todos modos.

Si bien, teóricamente usted correcto (sólo hay un caso, por lo que la constante será declarado sólo una vez de todos modos), que puede ser mejor ahorrar futuros mantenedores de este código la confusión (y la necesidad de configurar Sonar hacer caso omiso de esta advertencia), y acaba de definirlo como statictambién. También puede obtener una mejora del consumo de memoria minuto si el compilador realidad inlines él, que yo sepa, sólo lo hace con static finallos miembros.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=183650&siteId=1
Recomendado
Clasificación