Passar objeto por valor

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.

http://code.google.com/p/cloning/

Legal juno.rr,

vou testar e respondo aqui o resultado. Mas independente disso, será que existe algum motivo para o Java não ter nativo uma forma de copiar um objeto? É algo, vamos dizer, trivial para uma linguagem não acha?

Legal juno.rr,

vou testar e respondo aqui o resultado. Mas independente disso, será que existe algum motivo para o Java não ter nativo uma forma de copiar um objeto? É algo, vamos dizer, trivial para uma linguagem não acha?

É uma pergunta difícil de responder, eu não conheço os fundamentos do porquê java foi desenhado dessa maneira; mas sem dúvida é recurso necessário.