2010-10-12 13 views

risposta

8

In Java, tutte le costanti devono risiedere in un tipo (classe o interfaccia). Ma non è necessario implementare un'interfaccia per utilizzare una costante dichiarata all'interno.

Si può provare mettendo qualcosa di simile nel pacchetto:

interface Constants { 

    static final String CONSTANT = "CONTANT"; 

} 

e poi, utilizzando in questo modo:

String myVar = Constants.CONSTANT; 

In questo modo, avete ancora la vostra interfaccia, ma nessuna classe implementalo.

+1

Ogni dichiarazione di campo nel corpo di un'interfaccia è implicitamente pubblica, statica e finale. –

+7

Java efficace, l'articolo 19 "Usa interfacce solo per definire i tipi" consiglia esplicitamente contro questo utilizzo di interfacce. Utilizza le classi per le costanti o le enumerazioni, se possibile –

+0

@seanizer, puoi inviarmi quel pdf il mio ID di posta elettronica è lì con il mio profilo. –

0

Sembra essere un buon candidato per una voce in un file di proprietà per me.

0

È possibile utilizzare una classe astratta per fungere da classe base per ogni impls in quel pacchetto.

0

È possibile creare una classe speciale (statica) con solo questa variabile. Successivamente puoi aggiungere altre costanti o qualsiasi altra cosa tu abbia bisogno per quella classe.

5

In genere le applicazioni hanno una classe o un'interfaccia "Costanti" che contiene tutte le costanti.

Generalmente per raggruppare le costanti in classi logiche. Per esempio se ci possono essere due tipi di dipendenti, regolare e contratto:

class EmployeeType 
{ 
    public static final String REGULAR = "regular"; 
    public static final String CONTRACT = "contract"; 
} 

e usarlo come EmployeeType.REGULAR

Se le costanti non possono essere raggruppati in questo modo, avere una classe/un'interfaccia separata per contenere questi.

class Constants 
{ 
    public static final String APPLICATION_DOMAIN = 'domain'; 
} 

Non è necessario estendere/implementare questa interfaccia di classe per utilizzare i valori. Le costanti saranno generalmente dichiarati public static final, è possibile accedervi direttamente: Constants.APPLICATION_DOMAIN

2

Usa un pacchetto di classe privata:

class Constants{ 

    public static final int MY_VALUE = 1234; 

} 

Questo è accessibile solo dalle classi dello stesso package:

int val = Constants.MY_VALUE; 
1

È possibile eseguire questa operazione in vari modi:

  • Un modo (come indicato qui) è creare un'interfaccia costante globale e disporre di attributi public static final di ciascuna costante.
  • Creare il file delle proprietà. Avendo un file di proprietà, avrai una coppia di valori chiave (separati da un operatore =) ciascuno dichiarato su una nuova riga. Ecco un tutorial su come creare e utilizzare il file delle proprietà.
Problemi correlati