下記のコードにて、キャストが型安全とならないのはなぜでしょうか。
下記のメソッド呼び出しにて、どのようにしてClassCastExceptionが発生し得るのか想像できません。
class Hoge { } @SuppressWarnings("unchecked") public <T extends Hoge> void sample(T t) { try { t = (T) t.getClass().newInstance(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } }
また、上記コードは一見して、(T)のキャストは不要のような印象を持ってしまうのですが、
ここら辺のJavaの仕様について、どなたかご教示いただけますと幸いです。
調べた限り、下記の記事が近いのかなと思いましたが、今一つピンときていません。
http://d.hatena.ne.jp/ryoasai/20110329/1301414299
非常に大雑把な質問で恐縮ですがどうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。