По сути, существует два способа десериализации объектов (из JSON, из базы данных или даже из собственной сериализации Javas).
Тот, который почти каждый использует, полагается на рефлексию, чтобы узнать о структуре Объекта, чтобы создать и заполнить структуру.
Другой способ создает фабрики для объектов, которые необходимо десериализовать во время фаза сборки. Для этого он создает много классов и должен знать во время сборки, какие объекты ему нужно будет десериализовать. Единственная известная мне среда, которая следует по этому пути, это micronaut .
Даже если вы предоставляете безотражательные методы для заполнения ваших объектов (это может быть сделано), нам все равно нужно отражение, чтобы найти и вызвать эти методы.