ciao raga
devo confrontare la classe di un oggetto con un if. se è un oggetto di tipo data faccio delle operazioni , altrimenti delle altre. come posso fare. ?
grazie
ciao raga
devo confrontare la classe di un oggetto con un if. se è un oggetto di tipo data faccio delle operazioni , altrimenti delle altre. come posso fare. ?
grazie
Con l'operatore instanceof, vedi quiOriginariamente inviato da fcorsa
devo confrontare la classe di un oggetto con un if. se è un oggetto di tipo data faccio delle operazioni , altrimenti delle altre. come posso fare. ?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
mi spiego meglio:
io prelevo i dati da un TableModel e poi devo inserirli in excel con Jxl. ora essendo una procedura dinamica non conosco in una determinata cella della tabella che oggetto c'è.
prelevo il nome della classe con model.getColumnClass(i).
come la confronto per sapere se è una data o un numero?
instanceof non confronta due oggetti per vedere se sono della stessa classe?
cosi non va : if(model.getColumnClass(i) instanceof Date){ }
Se le cose stanno così hai 2 possibilità:Originariamente inviato da fcorsa
io prelevo i dati da un TableModel e poi devo inserirli in excel con Jxl. ora essendo una procedura dinamica non conosco in una determinata cella della tabella che oggetto c'è.
prelevo il nome della classe con model.getColumnClass(i).
O verifichi che il Class fornito da getColumnClass() sia quello che ti interessa.
O verifichi che la classe dell'oggetto fornito da getValueAt() sia quello che ti interessa.
Sono due modi leggermente diversi di vedere poi alla fin fine la stessa "cosa".
instanceof ha 2 operandi: un reference (quindi riferimento ad un oggetto) ed un tipo (proprio il nome di un tipo es. Integer, String, Date).Originariamente inviato da fcorsa
instanceof non confronta due oggetti per vedere se sono della stessa classe?
Ovvio .... un java.lang.Class non ha nulla a che fare con un java.util.Date!!Originariamente inviato da fcorsa
cosi non va : if(model.getColumnClass(i) instanceof Date){ }
In base alle 2 possibilità dette sopra:
a) if (m.getColumnClass(...) == Date.class)
b) if (m.getValueAt(....) instanceof Date)
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ok giusto
if (model.getValueAt(y, i) instanceof Date)
cosi va benissimo, bisognava confrontare l'oggetto.
grazie
Beh, sì così è più certo. Perché il getColumnClass() in realtà serve solo per scegliere renderer+editor, quindi potrebbe ritornare ad esempio Object.class per indicare di usare renderer/editor per rappresentare l'oggetto come stringa testuale.Originariamente inviato da fcorsa
if (model.getValueAt(y, i) instanceof Date)
cosi va benissimo, bisognava confrontare l'oggetto.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ok ottima spiegazione spiegazione.
grazie andbin