scala - 将 JavaScript (d3) 翻译为 Java

标签 scala groovy clojure java-8

是的,我知道,除了名称之外,它们没有任何共同点:-)今天我在 JavaFX Webengine 服务器环境中使用 d3。这很有效,但我对性能以及对象与 JSObject 之间的转换并不满意。长话短说,我正在考虑将 d3 移植到 Java 中使用。

由于 JavaScript 使用 lambda 和 clojures,我不确定是否应该使用“中间件”——即将 JavaScript 转换为 Scala 并在现有的 Java 应用程序中使用 Scale 类。由于我不熟悉 Java 8、Scala、Clojure 和 Groovy,我想问一下这是否会让移植变得更容易。就相似的句法特征而言,哪一个是最佳选择。

您认为像 d3 这样的项目需要付出什么努力?我预计 5 天左右会有事情发生。

最佳答案

Groovy,尽管可以选择 statically compiled , 默认情况下是动态的,具有熟悉的括号语法。在这三者中,我认为 Groovy 与 Javascript 最相似。 Groovy 的元编程类似于 Javascript 的原型(prototype),并且 Groovy 具有 lambda/闭包。

我不是 Javascript 专家,但是这段 JS 代码:

function Person(personName) {
  var name = personName;
  this.getName = function() {
    return name;
  }
}

Person.prototype.upperName = function() {
  return this.getName().toUpperCase();
}

var person = new Person("john doe");

console.log(person.upperName()); // prints JOHN DOE

可以使用元编程、通过 metaClass 和闭包在 Groovy 中编写:

class Person {
  String name
}

Person.metaClass.upperName = {
  delegate.name.toUpperCase()
}

def person = new Person(name: "john doe")

println person.upperName() // prints JOHN DOE

关于scala - 将 JavaScript (d3) 翻译为 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20140245/

相关文章:

google-app-engine - 哪个 Web 框架在 Google App Engine 上使用 Scala 效果很好?

scala - 类型符号与Scala反射镜之间的关系

Scala Websocket 客户端?

regex - 以下字符串的正则表达式是什么

clojure - LightTable REPL 返回 nil 而不是函数返回值

clojure - 如何将 lamina/aleph 安装到 Clojure?

scala - 使用 Play Json 将可选的 json 字段转换为选项?

groovy - 使用脚本有条件地更新 Elasticsearch 中的文档

java - 用于将 LDAP 用户映射到现有角色的 Nexus REST API

clojure - clojure 代码示例中的这个函数定义有什么作用?