Vorrei implementare un metodo che accetta un argomento come Object
, lo inserisce in un tipo arbitrario e, in caso di esito negativo, restituisce null
. Ecco quello che ho finora:Generics Java
public static void main(String[] args) {
MyClass a, b;
a = Main.<MyClass>staticCast(new String("B"));
}
public static class MyClass {
}
public static <T> T staticCast(Object arg) {
try {
if (arg == null) return null;
T result = (T) arg;
return result;
} catch (Throwable e) {
return null;
}
}
Purtroppo l'eccezione di classe cast è mai buttato/catturato nel corpo della funzione staticCast()
. Sembra che il compilatore Java generi la funzione String staticCast(Object arg)
in cui è presente una riga String result = (String) arg;
anche se io dico esplicitamente che il tipo di modello deve essere MyClass
. Qualsiasi aiuto? Grazie.
A proposito, dovresti prendere g solo ClassCastException, non Throwable. La cattura di Throwable può causare seri problemi. –