0
package com.test.scjp;

import java.util.List;
import java.util.ArrayList;

public class TestGeneric {
    public static void main(String args[]){
        try{
            List<String> l = new ArrayList<String>();
            TestGeneric t = new TestGeneric();
        //t.test(l);
            System.out.println("Test");
            l=t.test(l);
            System.out.println("Test2");

            System.out.println(l.get(0));
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
    public List<String> test(List l){
        System.out.println("Test0");
        l.add(new Integer(1));
        System.out.println("Test1");
        return l;
    }
}

このコードを 20 回実行すると、さまざまな出力が得られます。

出力 1:

Test
Test0
Test1
Test2
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at com.test.scjp.TestGeneric.main(TestGeneric.java:16)

出力 2:

Test
Test0
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at com.test.scjp.TestGeneric.main(TestGeneric.java:16)
Test1
Test2
4

2 に答える 2