Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [java] sapere se un'array esiste

    Ciao a tutti,
    una domandina, vorrei mettere una condizione che verifica se un'array list è già stato inzializato, del tipo:


    if (pressElements non è inzializzato ) {
    codice:
    ArrayList pressElements = new ArrayList();
    } else
    {
    pressElements.add(etc.);
    }

    come potrei scrivere?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    c'è la riflessione, ma non credo che sarebbe in grado di dirti se il tuo arraylist sia stato inizializzato

    Pensavo che potessi provare in un blocco try - catch ad eseguire una qualunque operazione sul tuo arraylist the sicuramente provocherebbe un'eccezione nel caso in cui l'arraylist non fosse inizializzato... e nel blocco catch ci infili l'inizializzazione.
    Non è un modo solido, per cui se esiste una maniera bella ed elegante (e solida), illuminate anche me, perché l'argomento è interessante.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3

    Re: [java] sapere se un'array esiste

    Originariamente inviato da Sandrocchio_0.1
    Ciao a tutti,
    una domandina, vorrei mettere una condizione che verifica se un'array list è già stato inzializato, del tipo:


    if (pressElements non è inzializzato ) {
    codice:
    ArrayList pressElements = new ArrayList();
    } else
    {
    pressElements.add(etc.);
    }

    come potrei scrivere?
    Grazie
    credo che basti controllare se l'oggetto sia nullo o meno.
    codice:
    if(pressElements == null){
      ArrayList pressElements = new ArrayList();
    }
    else{
      pressElements.add(etc.);
    }

  4. #4
    la seconda!
    == null


  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    bene bene
    Ma se dovessi controllare un tipo semplice, tipo un int?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    non è la stessa cosa?
    int i;

    if (i != null) {
    }
    :master:

  7. #7
    no, gli int (come tutti i dati base) non vengono inizializzati a null, quindi ci vuole l'inizializzazione esplicita magari con un valore di default
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  8. #8
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    potresti utilizzare la classse wapper degli int: Integer, essendo una classe gli oggetti potranno avere valore null e potrai fare il tuo controllo condizionale come per l'array, per maggiori info ti rimando alla documentazione sun.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Non credo che ci possano essere problemi per i tipi di dato primitivo: il programmatore, infatti, deve preoccuparsi di inizializzare sempre le variabili. Se queste prendono valore da un'interazione con l'utente è sempre possibile decidere se esse sono state inizializzate oppure no. Come in questo caso:
    codice:
    int a = 0;  // Il programmatore inizializza sempre le proprie variabili
    try {
       BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );
       String leggi = br.readLine();
       a = Integer.parseInt(leggi);
    } catch (Exception e) { ... }
    // Se si sono verificate eccezioni la variabile contiene il valore 0,
    // che evita qualsiasi tipo di problema
    In questo codice la variabile è sempre inizializzata. Se si verificano eccezioni la variabile ha comunque il valore 0. Non si deve mai lasciare una variabile non inizializzata (regola numero 1 della programmazione).
    Aggiungendo una variabile booleana, ad esempio, è possibile discriminare sull'avvenuta inizializzazione o meno da parte dell'utente.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; allora se definisci delle variabili di istanza puoi anche non inizializzarle; la VM si preoccuperà di farlo per te assegnando dei valori di default; ad esempio in questo caso:

    codice:
    public class Aclass{
    
      int i;
      String t;
      boolean b;
      char c;
      Object o;
    }
    La VM assegnerà questi valori di default:
    i = 0
    t = o = null (perchè sono 2 oggetti)
    b = false;
    c = '\u0000' (equivalente a carattere)

    All0interno di metodi, però, questo non è fattibile; nel senso che all0interno dei metodi devi sempre inizializzare le variabili.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

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 © 2024 vBulletin Solutions, Inc. All rights reserved.