引数としてObject
を取り込み、それを任意の型にキャストし、失敗した場合はnull
を返すメソッドを実装したいと思います。ここで私がこれまで持っているものです。 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;
}
}
残念ながら、クラスキャスト例外がスローされることはありません/
staticCast()
関数の本体でキャッチ。 Javaコンパイラは、
MyClass
であることを明示的に言っていますが、
String result = (String) arg;
の行を持つ
String staticCast(Object arg)
という関数を生成しているようです。どんな助け?ありがとう。
ところで、あなたはcatchinする必要がありますg ThrowableではなくClassCastExceptionのみ。 Throwableをキャッチすると深刻な問題が発生する可能性があります。 –