Может быть, вы можете добавить больше полей для запроса и перечислений, а затем вы можете равняться этому полю.
я есть групповой проект, в котором мы вынуждены использовать предоставленные интерфейсы и перечисления.
Представьте себе ситуацию, как показано ниже:
// 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.
заранее спасибо