gpt4 book ai didi

java - Java 中的动态查找器?

转载 作者:行者123 更新时间:2023-12-02 06:32:26 25 4
gpt4 key购买 nike

Groovy/Grails 有一个非常简洁的功能*,称为动态查找器,作为 GORM 的一部分,使用“幻像方法”实现,它使用动态消息拦截器将消息字段传递给对象,并且如果名称不是当前名称实际方法,但匹配特定格式:(字段+比较器)它将合成该逻辑的过滤谓词方法。 Groovy 在“MethodMissing”方法中对此提供了特殊支持,Grails/GORM 使用该钩子(Hook)添加了这个合成的查找器逻辑。

例如,可以做这样的事情:

   students.gpaLessThan(3.0).nameLike("Smith").stateEquals("Iowa");

并从集合中获取过滤结果,这些方法都不是用户编写的。

似乎可以在 Java 中做类似(并行)的事情,使用动态代理进行消息拦截器和合成。我本来打算玩这个,但想知道是否有其他人已经做过类似的事情。此外,我想知道使用注释是否可以对此类合成名称实现一些静态类型检查,因为注释至少可以生成带有方法引用的代码,然后编译器将检查这些代码。

[*我不是 Groovy 用户,只是阅读了此功能的一些示例,因此我对 Groovy 实现细节的理解可能不正确。]

最佳答案

看看Spring Roo 。它是一个基于 Java 的框架,从 Grails 中汲取了很多灵感。 Roo 有一个使用方面的动态查找器的有趣实现。

关于java - Java 中的动态查找器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19943462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com