Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema getClass()

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    1

    Problema getClass()

    Salve a tutti non riesco a trovare un metodo in Java che mi restituisce il tipo di Classe (non stringa).
    Supponiamo che ho un array di oggetti (vett) e ogni oggetto appartiene ad una classe diversa ma tutti gli oggetti hanno in comune nella propria classe un metodo polimorfico implementato

    se devo fare un controllo di questo tipo:

    if( ( (NOME_CLASSE)vett[i] ).getValore() > ( (NOME_CLASSE)vett[j] ).getValore() )

    devo sapere di che tipo è l'oggetto vett[i] e il tipo dell'oggetto vett[j] perchè potrebbero essere tipi diversi oppure dello stesso tipo

    vorrei sostituire al posto di NOME_CLASSE un metodo che mi restituisce la classe in automatico, ho provato con una cosa di questo tipo ma è sbagliato perchè probabilmente getClass mi restituisce una stringa

    if( ( (vett[i].getClass())vett[i] ).getValore() > ( (vett[j].getClass())vett[j] ).getValore() )

  2. #2
    da java 1.5 si puo' fare usando la reflection (Class.cast()) ma la trovo una soluzione sporchissima, se ti trovi a dover fare qualcosa del genere probabilmente devi rivedere il tuo design.

    Perche' ad esempio quegli oggetti nel tuo vector non implementano una stessa interfaccia che contiene il metodo getValore() che vuoi chiamare? Potresti quindi fare un Vector<TuaInterfaccia>, cosi' non ti serve nemmeno fare alcun cast.
    E magari invece che vector userei una List/ArrayList.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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.