Tengo una aplicación escrita en Scala y algunos de los miembros de mi equipo quieren una versión de Java de ella. Es una aplicación de demostración para usar otra API escrita en Scala, y quieren que una versión de Java de la aplicación pueda usar la API de Java. Sin embargo, la aplicación es bastante grande y no quiero volver a crear manualmente en Java (y no quieren aprender Scala). ¿Hay alguna herramienta que genere código Java (legible) automáticamente desde el código de Scala?Convertir automáticamente código de Scala a código de Java
Respuesta
quieren una versión Java de la aplicación para poder utilizar la API de Java
clases Scala son utilizables desde Java (ya que todo el código de bytes de JVM en el final). ¿Puedes empacar un tarro con tus clases para que lo usen?
Lo hice pero quieren un poco más que la API (es decir, la funcionalidad, que requiere algunos ejemplos complejos). – Jus12
¿Tal vez podría darles la API y algunos ejemplos de Java de cómo usarlo? – JohnnyK
Supongo que haré eso. La opción decompilador no genera código Java realmente utilizable. – Jus12
No creo que sea posible convertir de scala a java estándar ya que Scala realiza una manipulación de código de byte bastante baja. Estoy 90% seguro de que hacen algunas cosas que no se pueden traducir exactamente al código Java normal.
Cualquier código de Scala podría, en principio, volver a escribirse como Java (después de todo, ambos son completos); simplemente no sería tan bueno. Y cualquier traducción automática de Scala a Java probablemente resulte en algún código bastante horrible. – dhg
¿Estás seguro de eso?No estoy seguro de que todas las secuencias de códigos de bytes de Java válidas puedan ser realmente generadas por algún programa de compilación ... –
Cierto, ambos son completos. Solo quise decir que no creo que puedas producir código Java que compile exactamente en el mismo código de bytes que Scala. No podrías hacer una traducción directa. – JohnnyK
No, no hay tal herramienta.
Scala en cierto sentido es un coffescript de Java. Mira cómo todas las clases funky en coffescript son translated para javascript. Lo mismo * sería con scala.
No creo que haya muchas características que no se puedan traducir a Java de ninguna manera, pero la mayoría de las características se traducirán a código extremadamente desordenado, incluso si el humano lo hace.
Pero hay java to scala translators.
* no decir, literalmente, sobre las clases
Eché un vistazo al enlace de java a scala. Parece que pronto los miembros de mi equipo harán la misma pregunta :) – Jus12
No estoy seguro si esto iba a funcionar, pero se puede ejecutar los archivos de clase a través de un decompilador java.
Si funciona, el resultado será feo.
Tienes que descompilar los archivos .class a archivos fuente de Java, ten en cuenta que Scala produce muchos más archivos .class
Puede utilizar javap de Oracle incluye en el SDK o decompilador jad
de explicación detallada leer el siguiente artículo:
- 1. ¿Es posible convertir automáticamente el código Java a PHP?
- 2. Conversión automatizada de código fuente de Java a Scala?
- 3. ¿Cómo convertir automáticamente el código de conservación manual a ARC?
- 4. Convertir código Java en código Clojure rápido
- 5. únicos anidada Scala de código Java
- 6. Conversión de código Delphi a Java
- 7. ¿Llamar al código de Scala desde Java?
- 8. NoSuchMethodError al llamar código java de Scala
- 9. Convertir el código C99 a C89
- 10. Convertir un Scala Buffer a Java ArrayList
- 11. ¿Puede Java ejecutar un código scala compilado?
- 12. Código Scala desmitificar
- 13. ¿Cómo se traduce el siguiente código Java "continuar" a Scala?
- 14. Convertir código PHP a C++
- 15. Generación de código con Scala
- 16. ¿Cómo puedo ver en qué código de [Java/Scala?] El compilador Scala reescribe el código Scala original
- 17. ¿Código Python generado automáticamente a partir de un diagrama UML?
- 18. código Scala captura de confusión
- 19. Código scala loop infinito
- 20. cómo convertir el código de Python 3 a Python 2?
- 21. ¿Existe una herramienta efectiva para convertir código C# a código Java?
- 22. Código de bytes al código fuente de Java
- 23. Herramienta para convertir Java al código de C#
- 24. Analizador de código de Scala (no compilador)
- 25. Cómo convertir un carácter a código clave?
- 26. Cómo convertir código C++ a C
- 27. ¿Cómo convertir ASM a código legible?
- 28. Cómo convertir código OpenGL a WebGL
- 29. Herramientas de cobertura de código para Scala
- 30. Convertir código clave a clave char
Tal vez sus compañeros de trabajo pueden tratar de leer los ejemplos Scala, hay una buena probabilidad de que no tienen que "saber S cala "para tener una idea de lo que está haciendo el código. – gerferra
He [escrito una prueba de concepto en Prolog] (https://gist.github.com/jarble/d4325e5a1a700129a8db20bde0b2c410) que traduce un subconjunto de Scala en Java. Se basa en mi biblioteca [universal-transpiler] (https://github.com/jarble/universal-transpiler). –