为了账号安全,请及时绑定邮箱和手机立即绑定

EnumSet 类,在运行时获取元素类型

EnumSet 类,在运行时获取元素类型

侃侃无极 2022-08-17 10:41:58
我正在尝试扩展 https://github.com/tennaito/rsql-jpa 库以支持EnumSet字段。如果我硬编码 ArgumentParser 以将 EnumSet 属性值转换为特定查询,那么我就可以处理针对数据库的实际查询。我的问题是,给定一个查询,ArgumentParser得到一个JavaType:和字符串枚举值。enumsetfield=IN=(enumvalue)class java.util.EnumSet如何从 JavaType 获取元素类型?我还可以访问一个如果可能包含元素类型。org.hibernate.jpa.criteria.path.SingularAttributePath
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

也许能够使用反射来获取存储元素类的类中的非公共字段。例如,对于 OpenJDK 8,这里是 的源代码,元素类的字段称为 。但是,这将是特定于类库实现的实现,而不是可移植的。EnumSetEnumSetelementType



查看完整回答
反对 回复 2022-08-17
?
慕斯王

TA贡献1864条经验 获得超2个赞

我最终在SingularAttributePath上找到了所需的信息:格式为: - 这不是最佳的,我不得不重写rsql-jpa很多,我最终意识到IN查询在比较两个集合方面没有多大意义。所以现在的查询是path.attribute.member.signatureLjava/util/EnumSet<Lmy.project.enum;>;enumsetfield==enumvalue



查看完整回答
反对 回复 2022-08-17
  • 2 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号