Puis-je créer des variables public static final
dans une interface? Puis-je conserver des valeurs constantes communes définies dans ces fichiers?Java: Les interfaces peuvent-elles contenir des variables constantes définies dans ces interfaces?
Java: Les interfaces peuvent-elles contenir des variables constantes définies dans ces interfaces?
Répondre
Oui, vous pouvez:
public interface Constants
{
public static final int ZERO = 0;
}
Cependant, il est généralement pas être compté une bonne idée de nos jours. Ce n'est pas si grave si l'interface a un but réel ainsi que, et les constantes sont susceptibles d'être utilisées par la plupart des implémentations ... mais l'introduction d'une interface juste pour faciliter l'accès aux constantes est un abus de l'objectif des interfaces, vraiment. (Et c'est ce qui arrivait souvent.)
Alors, quelle est la solution? Définir une autre classe simplement pour définir ces constantes? – kiki
@kiki: Cela dépend de la situation. Parfois, les enums fonctionnent bien au lieu de constantes. Parfois, les avoir dans une interface naturelle existante est aussi propre que toute autre chose. Parfois, gardez-les avec la classe qui les concerne le plus fortement. Parfois, créez une nouvelle classe. –
Si vous implémentez l'interface uniquement pour éviter de les préfixer avec le nom de l'interface. –
Oui, vous pouvez conserver des constantes dans les interfaces. BTW, c'est considéré comme pas très bonne pratique.
Certes, les constantes public
peuvent être utilisées déclarées à l'intérieur des interfaces. Une chose, cependant, si votre interface va juste être des espaces réservés pour les constantes, utilisez enum
au lieu de
- 1. Java - Interfaces
- 2. Java Interfaces
- 3. question sur les interfaces java
- 4. Java: différentes interfaces génériques
- 5. java: interfaces et modèles
- 6. Utilisation des interfaces dans JNI
- 7. interfaces java ... questions rapides
- 8. Les interfaces doivent-elles définir des propriétés?
- 9. Java interfaces génériques avec les implémentations Typesafe
- 10. Java erreur de compilation avec des interfaces
- 11. restrictions et interfaces variables de type générique
- 12. Problème avec les interfaces en Java
- 13. Avoir des problèmes dans les interfaces C#
- 14. Interfaces standard
- 15. Java/Hibernate utilisant des interfaces sur les entités
- 16. Protocoles/Interfaces dans Ruby
- 17. méthodes constructeur dans les interfaces
- 18. interfaces avec des propriétés
- 19. Liste des interfaces génériques
- 20. Puis-je créer des interfaces de type Java dans Perl?
- 21. Interfaces internes?
- 22. C# Convertir les interfaces
- 23. Où déclarer les interfaces?
- 24. Problème avec les interfaces
- 25. Possibilité de spécifier plusieurs interfaces en Java
- 26. Interfaces dans .Net
- 27. Interfaces .NET
- 28. Java - Classe abstraite pour contenir des variables?
- 29. interfaces RESTful dans Django
- 30. Objective C interfaces, délégués, et protocoles
N'est-ce pas quelque chose qui est trivial à simplement * essayer *? Vous avez un compilateur fonctionnel, n'est-ce pas? –
Je suis désolé, je dois reformuler. J'ai essayé et ça marche. Mais je voulais plutôt savoir si c'est une bonne pratique. – kiki
duplicata possible de [Devrait-on placer une collection de constantes dans une classe ou une interface?] (Http://stackoverflow.com/questions/1372991/should-a-collection-of-constants-be-placed-in-a- classe-ou-interface) –