Posso creare variabili public static final
in un'interfaccia? Posso mantenere alcuni valori costanti comuni definiti in questi file?Java: le interfacce possono contenere variabili costanti definite in esse?
risposta
Sì, è possibile:
public interface Constants
{
public static final int ZERO = 0;
}
Tuttavia, è generalmente i conti di non essere una buona idea in questi giorni. Non è così male se l'interfaccia ha uno scopo reale e, e le costanti sono probabilmente utilizzate dalla maggior parte delle implementazioni ... ma l'introduzione di un'interfaccia solo per rendere più facile arrivare alle costanti è un abuso dello scopo delle interfacce, davvero. (Ed è quello che è successo molto spesso.)
Quindi qual è la soluzione? Definisci un'altra classe semplicemente per definire queste costanti? – kiki
@kiki: dipende dalla situazione. A volte le enumerazioni funzionano bene invece delle costanti. A volte averli in un'interfaccia naturale esistente è pulito come qualsiasi altra cosa. A volte basta tenerli con la classe che li riguarda più fortemente. A volte crea una nuova classe. –
Se si sta implementando l'interfaccia solo per evitare il prefisso con il nome dell'interfaccia che è. –
Sì, è possibile mantenere le costanti nelle interfacce. A proposito, non è considerata una buona pratica.
Certamente, le costanti public
possono essere dichiarate all'interno delle interfacce. Una cosa, tuttavia, se la tua interfaccia diventerà solo segnaposto per le costanti, usa enum
invece
- 1. interfacce non possono contenere campi
- 2. In Ruby, c'è un modo per stampare tutte le variabili globali e le costanti definite/predefinite?
- 3. Visualizza le variabili definite dall'utente in Julia
- 4. Come faccio a esaminare le costanti definite in PHP?
- 5. lista tutte le costanti definite da un file in php
- 6. Le interfacce possono evolversi con il tempo?
- 7. Le interfacce non possono dichiarare i tipi
- 8. Vim: le variabili non definite sono deselezionate
- 9. Visualizzazione di tutte le variabili definite
- 10. utilizzo typeof per le variabili non definite
- 11. Quando devono essere definite le costanti nei propri file?
- 12. Perché le stringhe in $ _POST non possono contenere un punto "."?
- 13. Interfacce in Java 8
- 14. Gli elementi possono contenere blocchi in bem
- 15. Le annotazioni possono sostituire totalmente le interfacce marcatore?
- 16. Quali sono le alternative più aggraziate alle interfacce costanti?
- 17. Sezione conflitto per le variabili in modo identico definite
- 18. Come ottengo tutte le variabili definite in un modello Django?
- 19. SASS ignora le variabili, definite in se-dichiarazione
- 20. Lista tutte le variabili definite dall'utente in programma
- 21. "costanti ANSI" Java
- 22. Java ha inventato le interfacce?
- 23. Variabili di istanze costanti?
- 24. Perché le stringhe non-letterali non possono contenere righe nuove?
- 25. Dovresti sempre codificare le interfacce in Java
- 26. Ci sono differenze tra le nostre variabili definite e le normali variabili globali in Perl?
- 27. Elenco di variabili definite in R
- 28. Le pagine di github possono contenere più di un dominio?
- 29. Quale è più veloce? Costanti, variabili o array di variabili
- 30. Utilizzare le variabili di classe come costanti in Scala
Non è qualcosa di banale semplicemente * provare *? Hai un compilatore funzionante, giusto? –
Mi dispiace, devo riformulare. Ho provato e funziona. Ma volevo piuttosto sapere se questa è una buona pratica. – kiki
possibile duplicato di [Dovrebbe essere inserita una raccolta di costanti in una classe o interfaccia?] (Http://stackoverflow.com/questions/1372991/should-a-collection-of-constants-be-placed-in-a- class-or-interface) –