Pregunta

Una vez que un método está marcado como en desuso, ¿existen herramientas que reemplacen estos métodos con soluciones alternativas en desuso?

¿Fue útil?

Solución

Las herramientas automatizadas solo podrían manejar razonablemente los casos en los que hay un nuevo método o clase preferido para usar para realizar exactamente la misma tarea. Cualquier caso en el que un método esté en desuso debido a un diseño defectuoso (piense en algo relacionado con las fechas en Java) o porque un " mejor " ahora se admite way (creo que AWT to Swing o SWT) requiere mucho o mucho pensamiento para ser automatizado.

En resumen, no hay tales herramientas. Dudo que alguna vez haya alguna en el futuro también.

Otros consejos

Si desea hacer esto automáticamente, no .

La herramienta se llama programador .


La razón es que las herramientas necesitarían comprender profundamente tanto la desaprobación, la "desaprobación", su programa y el lenguaje de programación de destino.

Por ejemplo, java.util.Date.setMonth está en desuso a favor de Calendar.set (Calendar.MONTH, int month) .

Eso es un cambio no trivial para aplicar, ya que requiere reemplazar instancias de objetos, llamadas a métodos, teniendo en cuenta la sincronización. En realidad es una pesadilla para hacer automáticamente.

Por lo general, debes usar algo como regexps, ANTLR o JavaCC para implementar tu propia herramienta.

Además, algunos IDE ofrecen herramientas de nivel relativamente superior para facilitar esto. En IntelliJ IDEA, estos son " Búsqueda estructural y reemplazo " y " Migrar " refactorización.

No puedo ver cómo funcionaría esto en este momento. Normalmente, al menos algunos pensaron que es necesario cambiar el código del cliente. Idealmente, el método en desuso incluirá un comentario que diga, " Use el método X en su lugar, pasando el valor nulo como parámetro final " o algo similar, pero solo en los casos más simples podría estar completamente automatizado. A menudo habrá algo como " Si necesita tratar con entradas nulas, use X. De lo contrario, use Y. "

(Además, incluso en los casos más simples, no hay una forma actual de representar la transformación en un formato legible por una máquina, básicamente el protocolo apropiado no se ha definido hasta donde sé).

Es una buena idea, pero sospecho que implementarla de una manera útil introduciría más complejidad de la que eliminaría. Además, desconfiaría mucho de una herramienta que me haga esto de forma completamente automática; de todos modos, probablemente querría tener una vista previa de cada cambio. En ese momento, por lo general, no ahorraría mucho tiempo en vez de hacerlo manualmente para comenzar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top