Как достичь полиморфизма во время выполнения с перечислениями, как переменные класса Java?

Я разработал проект для тракторов клиента. Теперь я должен добавить ту же функциональность для комбайнов в этом проекте. Поэтому я добавил базовый класс с именем Machine и два дочерних класса. Tractor а также Combine простирающийся Machine,

Поэтому, за исключением некоторых базовых изменений, мой код бизнес-логики (т.е. имена абстрактных методов в Machine класс) остался прежним и код работает хорошо как для трактора, так и для комбайна.

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

И я хочу достичь Полиморфизма во время выполнения с этими Enums, например

Перечисление в классе MachineConstant

class MachineConstant{
  public enum Enum195_AreMeterAlert {
     VALUE, LATITUDE, LONGITUDE, DATE, TIME
  }

  public EnumB1_Enum195_AreMeterAlert getEnum195_AreMeterAlert();
}

Enum в классе TractorConstant

class TractorConstant{
  public enum Enum195_AreMeterAlert {
     ACRE_VALUE, LATITUDE, LONGITUDE, DATE, TIME
  }

 public EnumB1_Enum195_AreMeterAlert getEnum195_AreMeterAlert(){
   return TractorConstant.Enum195_AreMeterAlert;
 }
}

И Enum в классе CombineConstant

class CombineConstant{
  public enum Enum195_AreMeterAlert {
     ACRE_VALUE, HARVEST_VALUE, LATITUDE, LONGITUDE, DATE, TIME
  }

 public EnumB1_Enum195_AreMeterAlert getEnum195_AreMeterAlert(){
   return CombineConstant.Enum195_AreMeterAlert;
 }
}

У меня будет MachineConstant в моем проекте, и в зависимости от типа машины, выбранного пользователем, я инициализирую эту ссылку

например MachineConstant machineConstant = new CombineConstant()

И в коде, я хочу позвонить, как machineConstant.getEnum195_AreMeterAlert()

Но теперь я получаю Expression Expected ошибка для строки
return TractorConstant.Enum195_AreMeterAlert;

Итак, как устранить эту ошибку и возможно ли с помощью перечислений достичь полиморфизма во время выполнения, подобного этому? Или что еще я должен сделать с этими перечислениями?

0 ответов

Другие вопросы по тегам