gpt4 book ai didi

java - RabbitMQ - 根据不同的条件调用不同的实现

转载 作者:行者123 更新时间:2023-12-01 12:19:07 25 4
gpt4 key购买 nike

我正在尝试使用RabbitMQ,并且根据不同的消息,应该调用不同的实现。

我将消息格式设置为JSON,并且有一个字段“callType”,它的值是实现公共(public)接口(interface)的类名。例如,所有实现都实现了接口(interface)“Task”,并且我实现了“TaskImp1”、“TaskImp2”、“TaskImp3”。

所以代码应该是这样的

if (callType=="TaskImp1")
((Task)TaskImp1).runTask()
if (callType=="TaskImp2")
((Task)TaskImp2).runTask()
if (callType=="TaskImp3")
((Task)TaskImp3).runTask()

但它能更灵活吗?如果以后我开发一个新的“TaskImp4”,我不想更改调用代码,是否可以让java自动选择正确的实现,因为callType实际上是实现的类名。

最佳答案

是的,例如,通过 Java 反射 ( What is reflection and why is it useful? )。不过,反射会带来性能成本( Java Reflection Performance )

关于java - RabbitMQ - 根据不同的条件调用不同的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26816872/

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