0
public class TestA {

    @SuppressWarnings("unchecked")
    public static <T> void main(String...args) throws InterruptedException {
        Thread.currentThread().setName("--Parent--");
        final InheritableThreadLocal<T> itl = new InheritableThreadLocal<T>() {
            @Override
            protected T childValue(T i)
            {
                System.out.println(Thread.currentThread().getName() + "\r\n" + i );
                return i;

            }
        };

        itl.set((T) new Integer(33));

        Runnable r = new Runnable() {
            @Override
            public void run() {
                Thread.currentThread().setName("--local--");
                System.out.println(Thread.currentThread().getName() + "\r\n" + itl.get());

            }
        };

        new Thread(r).start();
        System.out.println(itl.get());
    }
}

では、ここでどのようにタイプを指定できますか。上記のコードでは型が指定されていないため、デフォルトのオブジェクト型が図に示されています。ローカル内部クラス「InheritableThreadLocal」をジェネリックにしたい。

4

1 に答える 1