Newsgroup: it.comp.java
Titolo: file delle costanti

Sto sviluppando un progetto dove all'interno delle varie classi che lo
compongono appaiono svariate costanti che spesso si ripetono.
Come posso inserire tutte queste costanti in un file e farle valere per
tutte le classi del progetto ?
In sostanza vi chiedo come si fa' il classico #include nomefile dei
linguaggi imperativi.
-- 
Ciao Flex
________________________________________________
Chi sa ascoltare non solo e' simpatico a tutti ,
ma prima o poi finisce con l'imparare qualcosa

 
aanche se pare non piacere, puoi fare una classe tipo MyConstants fatta 
piu' o meno cosi'
class MyConstants
{
  public static final int CONST1 = "1";
  public static final int CONST2 = "2";
  ...
}
ecc ecc.
Quando in una qualche classe hai bisogno di una costante (mettiamo la 
prima) basta scrivere
int a = MyCostants.CONST1;
piace ancora di meno ma e' comoda la seconda opzione.
ovvero invece di essere una classe, MyConstans la dichiari interface
e se in una classe voglio accedere alle costanti, implemento 
l'interfaccia e ci accedo senza dover mettere "MyConstants.".
{2Nd+BESt}

 l'interfaccia e ci accedo senza dover mettere "MyConstants.".
La seconda infatti mi piace meno


 int a = MyCostants.CONST1;
Se non ti va di scrivere tutte le volte MyConstants puoi anche scrivere
import MyCOnstants;
e quindi puoi scrivere int a=CONST1;
CIAO!


ehm... no, x' le costanti sono static e deve x forza scrivere 
MyConstats.CONST1.
Altrimenti deve implementare l'interfaccia, come ho detto nel precedente 
  post
{2Nd+BESt}

 
beh, in java 5 si può fare
import static MyConstants;

 import static MyConstants;
all'interno di ogni classe


>  public static final int CONST2 = "2";
[CUT]
2 non e' una stringa :)
-- 
            Davide Gurgone
      web: 
http://www.gurgone.it/
mail: davidechiocciolinagurgonepuntoit

 all'interno di ogni classe
Azz.. comodo!!!


 
In alternativa puoi usare un file .properties, ma la soluzione migliore 
e' senz'altro quella che ti han gia' detto.
Pero' mi sono accorto programmando, che ad avere una sola classe di 
costanti si hanno poi dei problemi, va a finire che ci sono troppe 
costanti in un solo file e che alcune le crei e poi non le usi. Almeno a 
  me e' capitato cosi'.
Io preferisco inserire le costanti in testa alla classe a cui si 
riferiscono.
Per esempio sto facendo una ricerca in un'anagrafica e mi serve una 
costante int che mi indica il tipo di ordinamento per la ricerca:
public class Anagrafica{
   public static final int ORDER_BY_NAME = 0;
   public static final int ORDER_BY_BIRTH_DAY = 1;
   //......
}
Lo metto nella classe della gestione stessa.
e nelle classe che hanno bisogno di ricercare nell'anagrafica, 
importero' la classe:
import Anagrafica;
......
int ordinamento;
......
switch(ordinamento){
   case Anagrafica.ORDER_BY_NAME:
     .....
   break;
   case Anagrafica..ORDER_BY_BIRTH_DAY:
   break;
   default:
     .....
   break;
}
Ok???
Ciao e sero di esserti stato di aiuto.


 
oops! :> perdonatemi... ero in velocita'
{2Nd+BESt}


gia' gia' che e' poi come fanno in java
es quando tu usi delle costanti per il borderlayout
andrai a chiamare BorderLayout.NOMECOSTANTE
e' comodo e soprattutto ordina. pero' se hai delle costanti condivise, 
non conviene duplicare il codice, ma fare una classe x tali costanti
{2Nd+BESt}

 oops! :> perdonatemi... ero in velocita'
Avevo capito :)


 non conviene duplicare il codice, ma fare una classe x tali costanti
Intendi tipo una classe che contiene i parametri di configurazione, 
giusto??? Quelli che sono piu' o meno sempre gli stessi? Tipo la stringa 
di connessione al DB?
In quel caso ti do pienamente ragione e, in effetti, lo uso anch'io cosi'.
