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

    [java] confrontare una classe

    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

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] confrontare una classe

    Originariamente 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. ?
    Con l'operatore instanceof, vedi qui
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    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){ }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    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).
    Se le cose stanno così hai 2 possibilità:
    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".

    Originariamente inviato da fcorsa
    instanceof non confronta due oggetti per vedere se sono della stessa classe?
    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
    cosi non va : if(model.getColumnClass(i) instanceof Date){ }
    Ovvio .... un java.lang.Class non ha nulla a che fare con un java.util.Date!!

    In base alle 2 possibilità dette sopra:

    a) if (m.getColumnClass(...) == Date.class)

    b) if (m.getValueAt(....) instanceof Date)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    ok giusto

    if (model.getValueAt(y, i) instanceof Date)

    cosi va benissimo, bisognava confrontare l'oggetto.

    grazie

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fcorsa
    if (model.getValueAt(y, i) instanceof Date)

    cosi va benissimo, bisognava confrontare l'oggetto.
    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.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    ok ottima spiegazione spiegazione.

    grazie andbin

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.