¿Puedo crear variables public static final
en una interfaz? ¿Puedo mantener algunos valores constantes comunes definidos en estos archivos?Java: ¿Pueden las interfaces contener variables constantes definidas en ellas?
Respuesta
Sí, puede:
public interface Constants
{
public static final int ZERO = 0;
}
Sin embargo, es generalmente en cuenta de no ser una buena idea en estos días. No es tan malo si la interfaz tiene un propósito real y, y es probable que las constantes sean utilizadas por la mayoría de las implementaciones ... pero introducir una interfaz solo para facilitar el acceso a las constantes es un abuso del propósito de las interfaces, realmente. (Y eso es lo que solía suceder mucho).
Entonces, ¿cuál es la solución? Definir otra clase simplemente para definir estas constantes? – kiki
@kiki: Depende de la situación. A veces, las enumeraciones funcionan bien en lugar de las constantes. A veces tenerlos en una interfaz natural existente es tan limpio como cualquier otra cosa. A veces simplemente mantenlos con la clase que se relaciona con ellos más fuertemente. A veces crea una nueva clase. –
Si está implementando la interfaz solo para evitar el prefijo con el nombre de interfaz que es. –
Sí, puede mantener las constantes en las interfaces. Por cierto, se considera que no es una buena práctica.
Ciertamente, las constantes public
se pueden utilizar como interfaces declaradas dentro. Una cosa, sin embargo, si su interfaz va a ser marcadores de posición para constantes, use enum
en su lugar
- 1. interfaces no pueden contener campos
- 2. ¿Por qué las interfaces C# no pueden contener campos?
- 3. ¿Cómo examino las constantes definidas en PHP?
- 4. Java - ¿Clase abstracta para contener variables?
- 5. En Ruby, ¿hay alguna forma de imprimir todas las variables globales y constantes definidas/predefinidas?
- 6. Interfaces con campos estáticos en Java para compartir 'constantes'
- 7. constantes definidas en clases de plantilla
- 8. Visualización de todas las variables definidas
- 9. System.getenv no recibe las variables definidas en ~/.bash_profile
- 10. ¿Pueden las constantes NSString estar vinculadas débilmente?
- 11. ¿Cuáles son las alternativas más elegantes a las interfaces constantes?
- 12. ¿Pueden las anotaciones Java ser unitarias?
- 13. Las clases de Xcode no pueden "verse" entre ellas
- 14. JAXB No se pueden manejar las interfaces
- 15. variables definidas * y * indefinidos
- 16. Detectando variables no definidas en las plantillas de Django
- 17. El uso de variables no definidas en las sentencias if
- 18. ¿Cómo imprimir todas las variables definidas en emacs?
- 19. ¿Pueden las matrices PHP contener elementos de tipos diferentes?
- 20. Las etiquetas de servidor no pueden contener construcciones <% ... %>
- 21. ¿Pueden los parámetros ser constantes?
- 22. ¿Por qué las variantes de Delphi no pueden contener objetos?
- 23. Lista de variables definidas en R
- 24. ¿Se pueden declarar las constantes globales en JavaScript?
- 25. consulta acerca de las interfaces en Java
- 26. Herencia en las interfaces de colección Java
- 27. ¿Equivalente a las interfaces Java en C++?
- 28. Listar todas las variables de MSBuild definidas: equivalentes al conjunto
- 29. C# 'var' palabra clave contra las variables explícitamente definidas
- 30. Cómo utilizar variables ya definidas en ConfigParser
¿No es esto algo que es trivial simplemente * intentar *? Usted tiene un compilador que funciona, ¿verdad? –
Lo siento, debo volver a expresarlo. Lo intenté y funciona. Pero prefiero saber si esta es una buena práctica. – kiki
posible duplicado de [¿Debería colocarse una colección de constantes en una clase o interfaz?] (Http://stackoverflow.com/questions/1372991/should-a-collection-of-constants-be-placed-in-a- clase-o-interfaz) –