Может быть, вы можете добавить больше полей для запроса и перечислений, а затем вы можете равняться этому полю.

я есть групповой проект, в котором мы вынуждены использовать предоставленные интерфейсы и перечисления.

Представьте себе ситуацию, как показано ниже:

// marker interface
interface Request<T extends Response>{}

// marker interface
interface Response{}

enum TypeAction implements Request<SomeEnumClassThatImplementsResponse>{
      TYPE1, TYPE2, TYPE3
}

enum OtherTypeAction implements Request<SomeOtherEnumClassThatImplementsResponse>{
      OTHERTYPE1, OTHERTYPE2    
}

В другом классе у меня есть список запросов, как это:List<Request> req = new LinkedList<Request>() Что я хочу сделать, это: сделать переключатель, как показано ниже:

switch(a_request){
   CASE TYPE1: ....
   CASE TYPE2: ....
   CASE TYPE3: ....
   CASE TYPE2: ....
   CASE OTHERTYPE1: ....
   CASE OTHERTYPE2: ....
}

Как мне это сделать, пожалуйста?

ВАЖНАЯ ЗАМЕТКА : Я не могу добавить методы в интерфейсы и в перечисления, но я могу создать новые перечисления, которые реализуют интерфейсы, вы можете увидеть выше. Я бы предпочел не иметь двух перечислений, которые делают то же самое, если это возможно.

РЕДАКТИРОВАТЬ : Он отличается от возможного дублированного ответа тем, что я не могу добавить какой-либо метод в интерфейсе Request, и поэтому я не могу реализовать метод в классах enum.

заранее спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос