レポ
クラウドで
伸びる人沈む人

連絡特定商取引将来設計運営方針&メルマガSEの彼女は?
成功レポート集 Fedora9インストール! EclipseでJava Oracleバックアップのアーキテクチャ ゼロからHPでCGI 便利ネット知識
無料レポ&講習 IT業界の実態 linux処方箋 Java処方箋 Oracle処方箋 Perl処方箋
ClassCastExceptionの回避

<IT技術の処方箋:ClassCastExceptionの回避>



ClassCastExceptionエラーは、
抽象クラスのインスタンスのキャストを行う場合に発生するエラーです。


●例えば、↓のソースを実行すると、ClassCastExceptionが発生します。

public class GenericTypeTest {
public static void main (String args[]) throws IOException {

List list = new ArrayList();
Integer a1 = new Integer("1");
list.add(a1);
System.out.println( (String)list.get(0));

}
}


●なぜでしょうか?答えは、簡単。


listオブジェクトには、Integer型で登録されているのに、
Stringでキャストしているから、ClassCastExceptionが発生するわけです。



●このエラーを修正するためには、以下のようにします。
(誤)System.out.println( (String)list.get(0));
 ↓
(正)System.out.println( (Integer)list.get(0));



抽象クラス(list)に追加したクラスと同じクラスでキャストしてください。
そうすれば、ClassCastExceptionを防げます。




※もっと効率良くプログラムを書きたい場合は、こちらも参照してください。

ClassCastExceptionをコンパイル段階で強制回避
http://www.searchman.info/tips/2680.html
さらに補講教材があります。
以下をクリックしてください。

新人用Java勉強環境の準備

Servlet初心者が勘違いする「典型的な間違い」

クラウドで伸びる人沈む人 ||Copyright © 2005-2020 SearchMan,All Rights Reserved.