Reflexão de Java e a dor na refatoração

O Java Reflection fornece um mecanismo para introspectar um objeto em tempo de execução. Sem segundas intenções, este é um ótimo recurso, mas quebra todas as convenções de Refatoração!

Não há um caminho fácil (a não serFile Search) mesmo nos IDE modernos para saber qual atributo é referenciado e onde. Isso torna as Refactorings muito mais complexas (cansativas!) E propensas a erros.

Para ser franco, não é só oReflection API; Hibernate mapping files (hbm.xml) eJSP files ambos se referem aos atributos como String e quando você refaz o nome do atributo, é necessário alterar manualmente em todos esses locais.

Pior, as mudanças nos arquivos de mapeamento do Hibernate ou nos arquivos JSP resultam em erros de tempo de execução.

Estou interessado em saber como outros programadores lidam com isso em Java. Existem algumas ferramentas? Eu uso o Eclipse / IBM RAD como principal plataforma de desenvolvimento. Normalmente usamos umconstant para definir o atributo e usá-lo sempre que possível, mas nem sempre é possível.

Eu também estaria interessado em saber como outras linguagens lidam com isso!

questionAnswers(9)

yourAnswerToTheQuestion