2013-03-27 2 views
0

Можно ли переопределить/«скрыть» класс enum другим классом? Я не могу редактировать класс без того, что мне нужно, чтобы не работать, поэтому мне нужно переписать класс другим классом. Видя, что перечисление является окончательным и не может быть реализовано/перезаписано, я и я не можем добавить к классу (в основном, что мне нужно делать), у меня нет многих других опций. Мне просто нужен новый класс, который либо перезапишет, переопределит, либо добавит вещи в класс enum. Возможно ли это?Можно ли переписать перечислить другим классом?

+6

Что вы действительно пытаетесь сделать? Это звучит как проблема [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –

+0

Возможный дубликат [Добавить значения в enum] (http://stackoverflow.com/questions/55375/add-values-to-enum) –

+0

В принципе, я пытаюсь редактировать класс, чтобы что-то сделать, однако класс перечисление, которое невозможно отредактировать, или клиент узнает, что был отредактирован оригинальный класс, который просто закроет клиента. Мне нужен способ создать новый класс, который отредактирует исходный класс клиента/переопределит его. –

ответ

0

Вы всегда можете использовать делегирование.

class ExtendedEnumByDelegation 
{ 
    final MyEnum delegate; 

    public void enumMethod1 () 
    { 
    delegate.enumMethod1(); 
    } 

    public void enumMethod2 () 
    { 
    delegate.enumMethod2(); 
    } 

    public void nonEnumMethod () 
    { 
     // custom stuff 
    } 
} 
0

Вы можете попробовать Delegation pattern

Он прост в использовании и должны работать для вас.

Смежные вопросы