Только к вашему сведению, приведенный класс <Callable <Integer >> classCI = (Class <Callable <Integer >>) Callable.class по какой-то причине не работает. В любом случае, поскольку я проверяю Callable <Integer> с помощью рефлексии, не так уж много, просто подумайте, если вы когда-нибудь захотите отредактировать это.

не позвонитьClass.forName() когда результатом является универсальный тип? Обычно я могу использоватьasSubclass(), но здесь я вижу единственный способ сделать это - приведение, которое как бы торчит и выдает меня, когда все остальное красиво набрано с помощью дженериков.

Сценарий выглядит примерно так:

Существует .jar с одним основным классом точки входа, который имеетmain(), Требуется опция имени класса (и некоторых других, не относящихся к делу). Данный класс реализуетCallable<Integer>, Этот класс загружен, инициирован и запущен.

Вот пример того, что мне нужно:

Class<? extends Callable<Integer>> clazz = (Class<? extends Callable<Integer>>) Class.forName(options.valueOf(className)).asSubclass(Callable.class);

Есть ли способ избавиться от этого броска?

Использование SE6.

Ответы на вопрос(1)

Ваш ответ на вопрос