0

是否有可能至少在数据传输层面上整合这两个世界?假设我有通过 Spring WebMVC REST 端点提供的 Java 对象,而我的 Dart 客户端使用 AJAX 访问这些资源。如果 Dart 客户端也知道传输的类型,那就太好了,这样我就不必同步同一类型定义的 Dart 和 Java 版本,但是如果客户端上的数据访问,IDE 可以给我建议和错误方无效。


编辑

更多解释我正在尝试做的事情,因为我似乎还不够清楚:

  • 在 Java 方面,我定义了一个由 Spring WebMVC + Jackson 转换为 JSON 的 bean。所以传输单元已经是 JSON。我可以轻松地使用 Dart 动态访问数据,但这不是我想要做的。
  • 我想将检索到的数据解析为一个 Dart 类,因为它是原始 Java bean 类定义的复制品。看看Dart 网站上JsonObject 的解释,尤其是Language抽象类。这正是我现在正在做的事情。我正在定义一个抽象类,它定义了我从服务器检索的 JSON 数据。这样,如果我正在访问不存在的字段或执行不兼容的强制转换等,Dart 可能会出现语法错误。当然,这仍然会导致解析错误,但之后我可以以类型化的方式处理数据。
  • 我的问题是,要实现这一点,我必须手动同步 Java 端的数据 bean 的类定义和 Dart 端的抽象类定义。我想知道是否有人致力于创建代码生成器之类的东西,它从 Java 类定义中创建一个 Dart 类定义。
4

1 回答 1

1

您正在要求编辑器功能,这将导致编辑器的性能下降。对于任何此类功能,编辑器可能需要为 java 对象构建/维护对象图/语法树(这将在 java 世界中使用 AST),然后将其与 Dart 的语法树进行比较。

此外,不同的语言会提出相同的请求,例如 C#、Ruby 等。似乎没有任何理智的方法可以在性能限制内验证来自不同编程世界的对象。

我可以从 stackoverflow q/a 下面借用更多的观点,说明为什么使用 JSON/XML 而不是任何其他方式在 java/c#world 和 dart world 之间交换数据更简单-\

  1. Java 的序列化是如何工作的,什么时候应该使用它来代替其他一些持久性技术?
  2. 将一个从 Java 序列化的 BigInteger 读入 C#
于 2013-06-14T05:58:12.260 回答