【问题标题】:Converting / mapping Java code to Dart将 Java 代码转换/映射到 Dart
【发布时间】:2014-07-20 22:46:11
【问题描述】:

我的服务器是用 Java 编写的(在 GAE 上)。它包括一些我与 Android 客户端共享的数据类,现在也想与 Dart 网络客户端共享。

“共享”是指我将它们序列化为 JSON 并使用 HTTP 或 GCM 在客户端和服务器之间同步它们。

所以,我正在寻找一种工具,它可以为相关的 Java 类生成 Dart 等价物,因此我不必手动创建它们。

【问题讨论】:

    标签: java dart


    【解决方案1】:

    Google Cloud Endpoints 执行此操作(将数据类从 GAE 语言转换为客户端语言),但 Dart 目前不在支持语言中。

    我猜 GCE 可以用来生成 js,然后可以在 Dart 应用程序中使用,但这并不理想。所以我认为这是一个可能的解决方案,但不是一个足够的解决方案。

    另一个问题是代码转换与 GCE 服务紧密绑定 - 它不能独立于 GCE 使用,让 GCE 转换您的类的唯一方法是将它们包含在 GCE 接口中.

    (如果他们在 GCE 中加入 Dart 支持,让代码翻译器更加独立于 GCE,并添加一些功能,例如 @Ignore 属性,我认为这将非常有用!)

    【讨论】:

      【解决方案2】:

      ad-hoc Java-to-Dart translator”由 Stefan Matthias Aust “在三天内完成”(最后一次修订于 2014-01-03)。作者指出“可能存在错误”,并且“我没有涵盖注释和一些深奥的[原文如此] 泛型语法。”

      他提供了一些有用的指导方针,让你的 Java 代码保持友好:

      “因为 Dart 不支持重载方法,我强烈建议先重命名(使用您最喜欢的 IDE)Java 中的那些方法。我还注意到 Dart 不喜欢类型、字段或方法具有相同名称. 同样,我建议在翻译之前重命名所有此类事件。他还指出,Dart 不支持字符类型。

      【讨论】:

        【解决方案3】:

        您可以使用此包为 Google Cloud Endpoints http://pub.dartlang.org/packages/discovery_api_client_generator 生成 Dart 客户端代码。

        我也成功地将协议缓冲区用于类似的场景
        - http://pub.dartlang.org/search?q=protobuf
        - http://pub.dartlang.org/packages/protobuf_builder
        另见https://developers.google.com/protocol-buffers/

        【讨论】:

        • 啊,很高兴知道 Dart 也有 GCE 生成器。但是,我相信我必须创建包含我的数据类的假端点才能利用这一点。这是可行的,但并不理想。
        • 您的 Android 应用程序不使用 GCE 吗?当服务器和客户端都是 Java 时,我猜想是一些 Java 功能。
        • 实际上没有,而是我在 Android 和 GAE 项目之间共享代码,然后使用单个通用端点来发送/接收通用 JSON 对象。我有许多不同的数据类型,这种方法(对我来说)比为每种类型都有一个单独的端点和 CRUD 函数要容易得多。
        • 我猜 Protocol Buffers 与您当前的方法更相似,但支持不同的语言。我自己还没有创建 GCE(仅使用过),所以我不知道需要更多支出。
        • 听起来 PB 基于 .proto 文件为两端(在我的情况下为 Java 和 Dart)生成类,而不是能够从我现有的 Java 类中工作。我开始时实际上考虑过使用 PB - 我选择 JSON 是因为它看起来像 Google 对 JSON 进行标准化 - 不是因为 JSON 更好,而是因为它被更广泛地使用。
        猜你喜欢
        • 2020-01-18
        • 1970-01-01
        • 2015-03-05
        • 1970-01-01
        • 2013-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多