Salve a tutti.
Come faccio a vedere se una variabile è un istanza di una determinata classe?
Grazie!
Salve a tutti.
Come faccio a vedere se una variabile è un istanza di una determinata classe?
Grazie!
C'è l'operatore instanceof:
Ciao.codice:String stringa = "Ciao"; if (stringa instanceof String) { // l'oggetto stringa è istanza della classe String } else { // L'oggetto stringa non è istanza della classe String }
"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
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à...
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:
Ciao.isInstance():
This method is the dynamic equivalent of the Java language instanceof operator
"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
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.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()
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