Если у вас нет точного класса, у которого есть подклассы, такие как Boolean и Integer, вы не можете точно определить List следующим образом.
Вы можете определить список как:
List<? super Object> list = new ArrayList<>();
Но в этом случае вы можете поместить туда каждый класс, который расширяет Object, что, конечно, не то, что вам нужно, но может помочь в подобных задачах.
Например:
Когда у вас есть такие классы, как: Animal, Cat, Dog.
Затем вы можете составить список вроде:
List<? super Animal> list = new ArrayList<>();
и добавить к нему каждый класс, который является подклассом от Animal:)