我需要从Java程序内部生成JavaScript(ECMAScript)代码。为此,我正在寻找类似于 JavaPoet的工具,但其输出为JavaScript。
我不能使用将其他语言转换为JavaScript的转换器(例如,GWT不是答案),也不能使用从语法树生成JavaScript的工具(仅当有帮助构建该语法树的库时...)。
类似于已提到的JavaPoet的工具将是答案,因为它在内存使用和代码大小方面的足迹非常小。
生成的JavaScript代码的目标是Java / JSR 223(Nashorn),如果这是相关的话。
为了指定要求:JavaPoet使用此代码
创建此Java代码
(我从JavaPoet项目网站上复制了一个示例。)
我希望有类似的东西来创建JavaScript代码。
据我目前所知,StringBuilder实际上是最接近这个要求的。首先生成Java代码再将其转换为JavaScript应该可以工作,但这看起来真的很奇怪-而且一点也不轻量级。同样,先生成Kotlin或Ceylon代码然后将其转换为JavaScript也是如此。
我不能使用将其他语言转换为JavaScript的转换器(例如,GWT不是答案),也不能使用从语法树生成JavaScript的工具(仅当有帮助构建该语法树的库时...)。
类似于已提到的JavaPoet的工具将是答案,因为它在内存使用和代码大小方面的足迹非常小。
生成的JavaScript代码的目标是Java / JSR 223(Nashorn),如果这是相关的话。
为了指定要求:JavaPoet使用此代码
MethodSpec main = MethodSpec.methodBuilder("main")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.returns(void.class)
.addParameter(String[].class, "args")
.addStatement("$T.out.println($S)", System.class, "Hello, JavaPoet!")
.build();
TypeSpec helloWorld = TypeSpec.classBuilder("HelloWorld")
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.addMethod(main)
.build();
JavaFile javaFile = JavaFile.builder("com.example.helloworld", helloWorld)
.build();
javaFile.writeTo(System.out);
创建此Java代码
package com.example.helloworld;
public final class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, JavaPoet!");
}
}
(我从JavaPoet项目网站上复制了一个示例。)
我希望有类似的东西来创建JavaScript代码。
据我目前所知,StringBuilder实际上是最接近这个要求的。首先生成Java代码再将其转换为JavaScript应该可以工作,但这看起来真的很奇怪-而且一点也不轻量级。同样,先生成Kotlin或Ceylon代码然后将其转换为JavaScript也是如此。
StringBuilder
?不过,说实话,你的需求不太清楚。 - Axel