java - 给定泛型类型的实例,如何找到实现泛型接口的 Java 类?
问题描述
我正在开发一个包含一系列“<code>Rule”类(、、、CustomerRule
等VolumeRule
)TimeRule
的项目。这些类是自动生成的,不应从它们生成的形式中修改。
为了处理这些规则,我有一系列实现以下接口的“<code>RuleProcessor”类(CustomerRuleProcessor
、VolumeRuleProcessor
等):
public interface RuleProcessor<T extends Rule> {
T apply(T rule, EvaluationInput input);
}
实现看起来像这样:
public class CustomerRuleProcessor implements RuleProcessor<CustomerRule> {...}
最后,规则类本身被组合在一起,并以 JSON 格式存储在数据库中。因此,可以将多个不同类型的规则存储在一起作为一组进行处理。检索时,我将有一个List<? extends Rule>
将被流式传输和处理的。
我的问题是这样的:
- 给定一个具体的类(例如
CustomerRule
),有没有办法找到实现该RuleProcessor<CustomerRule>
接口的处理类?
我知道我可以只使用命名约定并使用class.getName() + "Processor"
. 但我想知道是否有更好、更优雅的解决方案。
解决方案
推荐阅读
- php - AWS EC2 /bin/php 不执行 php 脚本
- javascript - 如何使用 Typescript + Jest 测试 vuejs 道具
- ionic-framework - 在测试中未为离子输入呈现输入
- javascript - Firestore onSnapshot 通过 onEffect 中的状态附加到数组
- python - 在 SQLAlchemy 中,如果使用 NullPool,是否只需要实例化 Engine 对象一次?
- vb.net - clickonce 应用程序可以知道它是从哪个目录安装的吗?
- javascript - MongoDB 无法运行 MacOS
- python - DRF-通过模型在 M2M 中创建新实例时出错
- prometheus - 如果标签从指标中丢失,则发出警报
- javascript - React JS - 将多个子节点添加到单个节点而不覆盖当前内容