Cuando estaba analizando un código en mi proyecto, me encontré con esta situación. Tengo una interfaz completa con la declaración de constantes de cadena de la siguiente manera¿Por qué algunos desarrolladores declaran objetos String en sus interfaces en Java y cómo funciona?
public interface SampleInterface {
String EXAMPLE_ONE = "exampleOne";
String USER_ID = "userId";
public void setValue();
}
Si cualquier clase implementa esta interfaz SampleInterface
, lo que ocurre con las variables se declara?
- ¿La clase heredada tiene acceso a todas las variables?
- ¿La clase implementada necesita anular las declaraciones?
- ¿Cuál podría ser el propósito de declarar las variables String en una interfaz, cuando podríamos usar una clase abstracta para este propósito?
Además, ¿cuál es la mejor estrategia:
- Una clase con los campos estáticos finales y un constructor privado?
- ¿Interfaz con las variables como se ve arriba?
Su opinión es poner todas las constantes en la interfaz y acceder a ellas durante mi ejecución, supongamos que si alguna clase implementa esta interfaz, ¿qué ocurre con esas variables? – gmhk
Luego puede acceder a ellos a través de 'MyInterface.MY_CONSTANT' o' MyExtendingClass.MY_CONSTANT'. O incluso 'instanceOfMyExtendingClass.MY_CONSTANT', ya que son' public static final'. – haylem
En la clase de implementación, también puede referirse a él como 'MY_CONSTANT' (que es el motivo inicial de toda la" interfaz de constantes "antipatrón). Sin embargo, si eso es específicamente lo que está buscando, la declaración 'import static' fue agregada por una razón. –