Java 表达式树 [已关闭]

2022-09-01 21:25:16

是否存在与 的表达式树等效的表达式树,用于 ?我想实现一些类似LINQ的代码结构,我想知道我是否也必须滚动自己的表达式树库。.netJVMScala

更新:我对linq等效物本身不感兴趣。.net 具有大量表达式树工具,这些工具使在运行时动态编译代码变得容易,可以从代码中调用它。我想承担的项目与数据库无关。表达式树提供了一种简单的方法来描述对数据进行操作的代码。

如果没有库,我认为我的另一个选择是创建一个发出字节码的库。


答案 1

从2.10开始,Scala有了宏,它允许您在编译时访问其参数的抽象语法树:http://scalamacros.org/。以下是它们的一些用法示例,包括 LINQ:http://scalamacros.org/paperstalks/2013-12-02-WhatAreMacrosGoodFor.pdf 的草图。


答案 2

据我所知,最接近的是 Julian Hyde 的 linq4jOptiq 库。它们具有表达式树模型,支持针对许多类型数据源的类似 LINQ 的编程模型(受 Java 语法约束)。


推荐