PDA

View Full Version : Java: fare cast avendo il nome del tipo in una stringa


asdf
16-07-2004, 09:25
Ho una stringa contenente il tipo in cui voglio convertire un oggetto generico Object.
Come faccio a fare il cast usando questa stringa?

Grazie

cn73
16-07-2004, 10:09
Dai un occhio alle classi Class e Constructor.

kingv
16-07-2004, 13:31
non so cosa vuoi fare ma al 95% un'interfaccia potrebbe risolvere i tuoi problemi :p :p

PGI
16-07-2004, 14:04
Originariamente inviato da asdf
Ho una stringa contenente il tipo in cui voglio convertire un oggetto generico Object.
Come faccio a fare il cast usando questa stringa?

Grazie

In Java non puoi effettuare una conversione dinamica del tipo A in tipo B. Per via dei principi riguardanti la sicurezza dei tipi, in Java devi essere in grado di determinare in compilazione se il tipo A sia compatibile in assegnamento col tipo B, il che relega le operazioni di casting esclusivamente al contesto statico.

Come segnalato da cn73, esiste tuttavia la possibilitą di usare la cosidetta "introspezione" per far dire ad un reference ciņ che normalmente terrebbe per sč.

Se questa sia o meno la soluzione dipende dallo scopo per il quale vorresti fare questa conversione al volo. Ho letto da qualche parte che l'apparente necessitą di effettuare una conversione dinamica č sintomo di qualche crepa nella progettazione del codice. Sicuro che non ci sia una strada alternativa?

Ciao.

asdf
18-07-2004, 01:23
Per ora ho usato una soluzione tampone, guardando, a tempo di esecuzione, se l'oggetto a cui voglio chiedere un certo metodo lo implementa o meno (col mentodo getMethods della classe Class).

Devo infatti implementare un gestore di gruppi di oggetti remoti, di cui non conosco a priori i metodi che implementeranno (ho una serie di metodi che devono implementare, ma non necessariamente tutti)

Comunque grazie.