Saltar al contenido

¿Hay alguna forma de convertir Groovy a Java automáticamente?

Recuerda que en la informática un problema puede tener varias soluciones, así que enseñaremos lo más óptimo y mejor.

Solución:

IntelliJ IDEA tiene un soporte bastante decente para la refactorización de código maravilloso. También tiene un convertidor de nivel de código fuente de Groovy -> Java. La mayoría de las veces genera código que no se compila, pero puede ayudarlo a comenzar con el proceso de conversión del código. Código maravilloso:

class HelloWorld 
def name
def greet()  "Hello $name" 
int add(int a, int b) 
    return a+b;


Código Java convertido:

public class HelloWorld 
public GString greet() 
    return "Hello " + String.valueOf(name);


public int add(int a, int b) 
    return a + b;


public Object getName() 
    return name;


public void setName(Object name) 
    this.name = name;


private Object name;

Probablemente no sea la respuesta que desea escuchar, pero me concentraría en sentirme más cómodo con Groovy en lugar de tratar de convertir el código a Java. Hay muchas cosas que puedes hacer en Groovy que simplemente no se traducirán bien a Java (como los cierres). Cualquier conversión automática a Java hará que el código sea mucho menos legible y más difícil de entender.

Si no puede ser persuadido para seguir con Groovy, y DEBE migrar a Java, lo mejor que puede hacer es hacerlo a mano.

Los lenguajes Groovy y Java se compilan en el mismo código de bytes (Código de bytes de la plataforma Java). Así que solo (a) compile su archivo .groovy en un archivo .class; (b) use un descompilador como JDGUI para descompilar su archivo .class en un archivo .java.

Reseñas y puntuaciones

Finalizando este artículo puedes encontrar las interpretaciones de otros sys admins, tú incluso puedes mostrar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *