Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    1

    Variabili globali in java

    Ciao,
    sto sviluppando un'applicazione java.
    Il problema è questo:
    Ho una classe A in cui viene inizializzato un oggetto settando un valore
    Ad esempio user

    codice:
    public class A { 
    private String user; 
    
    public A(String s){ 
    user = s; 
    }
    
    public static void main(String[] args){
    		A a = new A("Tizio");
    }
     
    }
    Ho una classe B in cui viene definito un metodo che utilizza il valore user settato da A

    codice:
    public class B { 
    public void faQualcosa(){ 
    // devo recuperare in questo metodo il valore di user della classe A
    } 
    }
    Quello che voglio evitare è di dover passare l'oggetto A all'oggetto B. Cioè vorrei che l'oggetto B prendesse il valore (in qualche modo che non so) ma non dovesse mantenere un'istanza dell' oggetto A.
    Di istinto mi verrebbe di creare un campo statico nella classe A ma ho capito che è concettualmente sbagliato dato che il campo user è un campo che appartiene ad una specifica istanza e non alla classe.

    Quello che ho in mente è una sorta di "Properties" temporanea accessibile da tutte le classi che viene inizializzata alla partenza.

    Mi aiutate a capire se sono fuori strada e come risolvere questo problema?
    Grazie!

  2. #2
    e come fa B a sapere il valore di quale istanza stampare ?

    Potenzialmente ci possono essere migliaia di istanze dell'oggetto A in memoria e l'unico modo per discernere tra le varie istanze e' un riferimento.

    Un riferimento e' anche la soluzione piu elegante perche in qualche modo codifica nella signature
    del metodo di B che tale metodo dipende da A.

    Anche usando la Properties che hai in mente, B dovrebbe avere comunque un informazione riguardo a quale delle istanze di A adoperare. Tale informazione sarebbe la chiave da usare nel metodo get() della istanza di Properties per recuperare il riferimento ad A e dovrebbe essere passata per argomento, quindi avresti comunque a che fare con una reference non statica.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.