Однако, я не думаю, что требование секунд возможно, поскольку общие типы существуют только во время компиляции:
List<type> list = new List<type>(); // invalid code
Однако вы можете работать с List<Object>. Он примет объекты Boolean. Будь то вы купите вам все, что не зависит от вашего использования.
Ответ 2
Generic - это функция времени компиляции, а не время запуска, поэтому вы не можете использовать переменную для определения общего типа, даже используя примечание NPE (используя Class) не будет компилироваться:
Class<?> type = Boolean.class;
// can't do that...
List<type> list = new List<type>();
list.add(true);
Ответ 3
Во втором случае, почему вы хотите использовать generics, когда тип неизвестен? Вы можете лучше использовать универсальный arraylist (используется до jdk 5).
List a = new ArrayList();
a.add(object);
Этот стиль по-прежнему поддерживается более высокими версиями, и даже стиль дженериков после компиляции преобразуется в эту форму. Вы получите предупреждение в коде выше, который вы можете подавить.