Внутри универсального типа нет способа получить имя параметра типа во время выполнения, если никто не сказал вам об этом.
Во время выполнения BurningSun<String>
и BurningSun<Integer>
полностью эквивалентны, и вы даже можете привести одно в другое (хотя это не безопасно для типов).
Итак, обычно, если вам действительно нужен объект класса параметра типа внутри вашего универсального объекта, вы позволяете кому-то дать егов конструктор