Existe alguma forma de passar um objeto criado por mim, um pojo, para um método mas por valor? Quando digo por valor significa uma cópia TOTAL do objeto com todos os seus atributos, ou seja, um deep clone. Por favor não venham com respostas de que tudo no Java é passado por valor pois no heap o endereço é replicado e blá blá blá. Caso não tenha, existe alguma forma de copiar ou clonar um objeto sem ter que implementar na unha a cópia de cada atributo?
Todas as pesquisas que tenho feito dizem que não tem como fazer isso a não ser fazendo na mão ou serializando. Eu particularmente acho isso uma fraqueza enorme da linguagem pois se eu tenho um objeto com muitas composições aninhadas eu ter que implementar em cada um o método clone() copiando atributo por atributo na mão e sempre que eu adicionar um novo atributo na classe ter que me lembrar de ir no método de clone e adicionar, pra mim é ridículo.