View Full Version : [JAVA]Come fare un metodo per il casting automatizzato
DesmoColo
22-02-2006, 15:30
Ciao a tutti!
Dopo aver risolto con le reflection ho un altro quesito "strano".
MI piacerebbe sapere se esiste un modo per fare come segue:
public class mia{
public Object faiIlCasting(Object obj,Class classeX)
return (classeX)obj;
}
DesmoColo
22-02-2006, 16:07
scusate, mi ero dimenticato di specificare una cosa:
per la mia applicazioen l'ideale sarebbe creare un oggetto castato a una certa classe partendo da una stringa...mi spiego meglio
class mia{
public Object getCasting(Object o,String nomeClasseX){
Class classeX;
return (classeX)o;
}
}
^TiGeRShArK^
22-02-2006, 17:55
.....
non ho capito ke intendi...:confused:
se dici ad un metodo di ritornare un oggetto esso ritornerà un oggetto... poi lo dovrai castare tu nel modo corretto....
il metodo restituisce un oggetto Object quindi il casting all'interno di tale metodo ad un tipo più specifico è inuitile.
l'esempio che avevi postato castava l'oggetto alla classe Class, NON alla classe che rappresenta quell'oggetto Class, ma c'è un metodo appropriato (che adesso non mi ricordo) per fare ciò che vuoi tu
l'unica che puoi fare è parametrizzare il tipo di ritorno (si dice così :stordita: ?) tipo
public static <T> T casting(Object ogg,Class<T> classe){
// usa qui il metodo che non ricordo, qualcosa tipo cast(Object obj) throws ClassCastException
// try{
// return classe.cast(ogg);
// }
// catch(ClassCastException CCE){
// return null;
// }
}
che per funzionare devi sapere già a compile-time il tipo a cui vuoi castare (altri menti casta sì, ma poi l'oggetto per forza fuori dal metodo lo dovrai usare con un reference di tipo Object), quindi risulta estremamente più schifoso di
ClasseMia x=(ClasseMia)ogg;
sì ricordavo giusto il metodo è cast(Object obj), chee ritorna un tipo T, definito dall'oggetto Class<T> a cui chiami quel metodo
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.