クラウドで 伸びる人沈む人 |
|
|
|
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 |