Это, честно говоря, странная идея.
Делая поля final
, вы сообщаете компилятору, что они никогда не изменятся после создания объекта. Как следствие, это разумное предположение не сохранять их, так как они никогда не изменятся. Что ж, написав это, я предполагаю, что у вас есть культура Java, но вопрос, который вы задаете, точно говорит об обратном.
В Java постоянные объекты «всегда» предполагаются как POJO (другими словами, Java Beans). Бин Java должен иметь (чтобы считаться таковым) пустой конструктор, который позволит структурам персистентности и т. Д. Конструировать его, используя его пустой конструктор, косвенно вызывая его через Class.newInstance () /.
Существуют поля, в которых используются непустые конструкторы (например, контейнеры IoC - Guice, Spring и Tapestry IoC), но это выходит за рамки Java Beans, которые должны рассматриваться как объекты данных.