web-dev-qa-db-fra.com

Java to Scala conversion de code source automatisé?)

(Oui, je sais que je peux appeler Java de Scala; mais c'est inutile; je veux SUPPRIMER le code Java, ne pas le garder et le faire regardez-le et maintenez-le pour toujours!)

Existe-t-il des utilitaires pour convertir Java en source Scala source?

Je crois qu'en théorie, il devrait être possible d'accomplir avec un minimum de pertes.

J'ai trouvé cela mais il semble inactif, probablement buggé/incomplet ... http://sourceforge.net/projects/Java2scala/

Des alternatives?

43
Alex R

IntelliJ sorte, sorta, fait cela. Vous devez ouvrir un projet avec vos sources Java. Vous pouvez ensuite copier/coller des expressions, des méthodes ou des classes entières dans un fichier .scala. Cela se transforme en équivalent Scala code.

La fidélité de la conversion n'est pas parfaite et, pour cette raison, elle ne prend pas encore en charge une conversion en masse.

Je recommande d'utiliser la dernière version de IntelliJ et Scala Plugin . L'édition communautaire est gratuite.

En dehors de cela, Paul Phillips a lancé le projet Scalify pour traduire le code de Java à Scala (ou, potentiellement, votre langue préférée ), et même l'améliorer dans le processus! Il explique le concept dans ce vidéo . Cependant, cet effort a été bloqué, probablement parce qu'il a tourné son attention vers une contribution directe au compilateur et à la bibliothèque standard Scala).

37
retronym

Dans IntelliJ IDEA theres est un refactoring appelé "Convert to Scala". Il se trouve dans le menu Refactor (après avoir installé Scala) Ctrl + Shift + G. Donc vous n'avez pas besoin de jouer avec copier/coller.

Assurez-vous simplement d'avoir un fichier Java ouvert, il n'y a pas cette option s'il s'agit d'un scala ou autre fichier).

26
Eugene Platonov

Je viens de publier l'outil suivant: Scalagen . J'ai également essayé Jatran, mais j'étais frustré par quelques bugs et une intégration difficile. Scalagen est extensible et est livré avec un plugin Maven.

16
Timo Westkämper

Vous pouvez utiliser en ligne Java vers Scala qui utilise la bibliothèque Scalagen .

8
Luka Zakrajšek
6
Gene T

Je ne pense pas qu'il soit possible de convertir automatiquement Java to Scala dans le cas général. La plupart des constructions de niveau inférieur dans Java n'existe pas dans Scala (par exemple, les champs et les membres statiques), Scala place des limitations sur les constructeurs qui n'existent pas en Java, et Scala n'a pas de types bruts comme Java (génériques sans les paramètres génériques spécifiés).

2
Erik Engbrecht