Сделать расширение для класса расширить другой класс

#flutter #dart #enums

Вопрос:

У меня есть это перечисление, которое расширяет enum дополнительные возможности.

 enum MenuItemTagEnum {  @JsonValue(0)  nullObject,  @JsonValue(1)  american }  extension MenuItemTag on MenuItemTagEnum {  static Maplt;MenuItemTagEnum, Optiongt; items = lt;MenuItemTagEnum, Optiongt;{  MenuItemTagEnum.nullObject: Option(  name: 'Null Object',  id: MenuItemTagEnum.nullObject.index,  iconCodePoint: 0xf54c),  MenuItemTagEnum.american: Option(  name: 'American',  id: MenuItemTagEnum.american.index,  iconCodePoint: 0xf803)  };   Option get option =gt; items[this]!;  String get name =gt; items[this]!.name;  int get id =gt; items[this]!.id;  int get iconCodePoint =gt; items[this]!.iconCodePoint;   static Listlt;Optiongt; get options {  return items.entries  .map((option) =gt; option.value)  .toList()  .sortedBy((option) =gt; option.name);  } }  

Могу ли я удалить options , option , name , id , iconCodePoint в базовый класс и расширить этот класс?

Вот так:

 extension EnumEntity on Enum {  static late Maplt;dynamic, Optiongt; items;   Option get option =gt; items[this]!;  String get name =gt; items[this]!.name;  int get id =gt; items[this]!.id;  int get iconCodePoint =gt; items[this]!.iconCodePoint;   static Listlt;Optiongt; get options {  return items.entries  .map((option) =gt; option.value)  .toList()  .sortedBy((option) =gt; option.name);  } }  

Итак, чтобы было ясно, могу ли я MenuItemTag продлить EnumEntity , чтобы мне больше не нужно было объявлять options , option , name , id , iconCodePoint in MenuItemTag ? Это потому, что у меня будет много родственных классов MenuItemTag , и я буду повторять эти неизменные свойства для каждого из них. Items должно быть, это единственное, что мне нужно объявить для всех братьев и сестер.