Может ли JIT извлечь пользу из Generics?

Хорошо известно, что универсальные типы не выживают в процессе компиляции. Они заменены приведением классов.

Но, тем не менее, информация о типе присутствует в файле класса, и ее можно увидеть с помощью отражения:

public class Demo
{
    private List<String> list;

    public Demo() throws SecurityException, NoSuchFieldException
    {
        System.out.println(((Class<?>)((ParameterizedType) getClass().getDeclaredField("list").getGenericType()).getActualTypeArguments()[0]).getName());
    }

    public static void main(String[] args) throws SecurityException, NoSuchFieldException
    {
        new Demo();
    }
}

При выполнении это напечатает java.lang.String .

Может ли JIT использовать это для какой-то оптимизации? Или эта информация с точки зрения JIT бесполезна?

8
задан yankee 27 July 2011 в 09:04
поделиться