使用Dart在运行时/编译时生成类

使用Dart在运行时/编译时生成类,dart,Dart,关于使用Dart生成代码的几个问题: dart能否在运行时使用dart为dart VM上运行的代码生成一个类 在编译/预运行时,是否有类似于Java注释处理的代码生成 1) Dart VM和dart2js不支持在运行时生成代码。 一种解决方法是为文件生成代码并将其加载到新的隔离文件(也可以是数据URI)。应用程序只能通过消息传递与在另一个隔离中运行的生成代码通信 2) 这就是我们的目的,但转换器只应用于dart2js(或开发时的发布服务),而不应用于服务器端Dart VM上运行的代码 (当前仅在

关于使用Dart生成代码的几个问题:

  • dart能否在运行时使用dart为dart VM上运行的代码生成一个类
  • 在编译/预运行时,是否有类似于Java注释处理的代码生成
  • 1) Dart VM和dart2js不支持在运行时生成代码。
    一种解决方法是为文件生成代码并将其加载到新的隔离文件(也可以是数据URI)。应用程序只能通过消息传递与在另一个隔离中运行的生成代码通信

    2) 这就是我们的目的,但转换器只应用于dart2js(或开发时的发布服务),而不应用于服务器端Dart VM上运行的代码


    (当前仅在开发人员预览中)可用于生成浏览器和服务器端代码的代码。它是一个监视源文件并在源文件更改时更新生成代码的工具。

    我现在发现dart团队有一个用于生成源的库。它对于在编译前生成源代码似乎很有用:

    我明白了。我想到了第一种方法。您是否了解隔离和消息通信的开销?我找不到关于最新隔离性能的更多信息。我假设它比在同一隔离中传递值慢得多,但它仍然在内存中,因此比网络请求快得多。您需要为您的特定用例做一些基准测试,以获得适当的结果。我认为这在很大程度上取决于您发送的值的类型(基本值、映射或列表、自定义类实例或自定义类实例的树)。