Я пытаюсь использовать RabbitMQ и на основе разных сообщений нужно вызывать различные инструменты.RabbitMQ - Вызов различных реализаций, основанных на разных условиях
Я установил формат сообщения как JSON, и есть поле «callType», значение которого является именем класса, реализующим общий интерфейс. например, все реализации реализуют интерфейс «Задача», и у меня есть реализация «TaskImp1», «TaskImp2», «TaskImp3».
Так что код должен быть как
if (callType=="TaskImp1")
((Task)TaskImp1).runTask()
if (callType=="TaskImp2")
((Task)TaskImp2).runTask()
if (callType=="TaskImp3")
((Task)TaskImp3).runTask()
Но это может быть более гибким? Если позже я разработаю новый «TaskImp4», я не хочу изменять вызывающий код, возможно ли, что Java автоматически выбирает правильную реализацию, поскольку callType на самом деле является именем класса реализации.