1

我目前正在为 J2ME 环境(CLDC 1.1 配置和 IMP-NG 配置文件)编写一个嵌入式应用程序。被基于 JVM 的语言(Groovy、Scala、Clojure 等等)的所有这些新特性宠坏了,我正在考虑将其中一种用于我的代码。

但是,大多数提到的语言都需要相当不错的 JVM 环境。大多数所谓的“动态”语言都要求 VM 具有反射功能。许多人要求注释支持。以上功能在 J2ME 下均不可用。

根据我的发现,Xtend看起来是一个可行的选择,因为它的编译器会输出纯 Java,而不是字节码,并且不需要任何库来满足运行时的需要。当然,生成的 Java 代码也必须满足一些要求,但 Xtend 网页在这方面看起来很有希望:

Xtend 只是上课,没有别的

Java 中的接口定义已经非常简洁明了。它们具有不错的默认可见性,并且在其他领域也几乎没有什么可以改进的。鉴于能够处理这些文件的所有知识和强大的工具,没有理由以不同的方式定义它们。这同样适用于枚举和注释类型。

这就是 Xtend 只能做类并依赖于 Java 中定义的接口、注释和枚举的原因。Xtend 并不是要取代 Java,而是要使其现代化。

我是对的吗,可以为 J2ME 平台编译 Xtend 生成的代码,还是有些结构在那里不起作用?

或者,您能否推荐任何其他可以在 J2ME 上运行的“丰富”Java 修改语言?

更新:知道作为另一个源代码产生结果的“编译器”称为transcompiler,还可以找到Mirah ,这是一种不需要运行时库和特定 Java 功能的工具。

4

2 回答 2

1

Xtend 生成的代码大量使用了 google guava。如果这与 J2ME 兼容,那么 Xtend 可能是您选择的语言。我不知道有什么会阻止在提供专用开发工具包(例如 Android)的其他平台上使用它。

于 2012-05-08T21:28:14.783 回答
1

除了能够生成 Java 源代码之外,Mirah 最近还添加了对 javac 的 --bootclasspath 选项的支持,它允许您针对非标准版本的 Java 核心类(例如 LeJOS)生成字节码。

它仍然有点新鲜,但是让更多人在不同的 java 上使用它会很好。

于 2012-05-10T03:45:24.290 回答