在我的工作中,我们有一个用于指定数学公式的DSL,我们后来将其应用于很多点(以百万计)。截至今天,我们构建了公式的AST,并访问每个节点以生成我们所谓的“评估器”。然后,我们将公式的参数传递给评估器,并针对每个点进行计算。例如,我们有这个公式:x*(3+y)┌────┐┌─────┤mult├─────┐│└────┘│││┌──v──┐┌──v──┐│x│┌───┤add├──┐└─────┘│└─────┘│││┌──v──┐┌──v──┐│3││y│└─────┘└─────┘我们的评估器将为每个步骤发出“评估”对象。这种方法编程容易,但效率不高。所以我开始研究方法句柄以构建一个