Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [Java]Verifica tipo

  1. #1

    [Java]Verifica tipo

    Salve a tutti.
    Come faccio a vedere se una variabile è un istanza di una determinata classe?
    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    C'è l'operatore instanceof:
    codice:
    String stringa = "Ciao";
    
    if (stringa instanceof String) {
       // l'oggetto stringa è istanza della classe String
    } else {
       // L'oggetto stringa non è istanza della classe String
    }
    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

  3. #3
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    vanno bene anche Object.class.equals(Obgect2.class) e isIstance()???
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Il metodo equals serve per confrontare due oggetti e verificare che siano uguali (ha poco a che vedere con il testare la loro appartenenza ad una certa classe, è più forte, in un certo senso).

    Per quanto riguarda il metodo isInstance() della classe Class, è identico all'uso dell'operatore instanceof. Questo è scritto nella documentazione Java:
    isInstance():

    This method is the dynamic equivalent of the Java language instanceof operator
    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

  5. #5
    l'equals (eccetto per String e classi che lo ridefiniscono) testa se è lo STESSO oggetto, non la stessa classe, quindi un new Oggetto1 oggetto e new Oggetto1 oggetto_simile, daranno probabilmente false ad un equals()

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Originariamente inviato da trevor
    l'equals (eccetto per String e classi che lo ridefiniscono) testa se è lo STESSO oggetto, non la stessa classe, quindi un new Oggetto1 oggetto e new Oggetto1 oggetto_simile, daranno probabilmente false ad un equals()
    Esatto... per questo ho detto che è, in un certo senso, più forte. Se equals() ritorna true significa non solo che sono due oggetti della stessa classe, ma addirittura che sono due oggetti uguali (per classi che sottopongono equals() ad override) o lo stesso oggetto.


    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

  7. #7
    Grazie a tutti!

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.