Как достичь полиморфизма во время выполнения с перечислениями, как переменные класса 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;
Итак, как устранить эту ошибку и возможно ли с помощью перечислений достичь полиморфизма во время выполнения, подобного этому? Или что еще я должен сделать с этими перечислениями?