Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #11418

Re: enum paralellism

From Daniel Pitts <newsgroup.nospam@virtualinfinity.net>
Newsgroups comp.lang.java.programmer
Subject Re: enum paralellism
References <4tb8h7h2tul5rq4m5bk9sg485tq33qi394@4ax.com>
Message-ID <kbjRq.962$744.661@newsfe10.iad> (permalink)
Date 2012-01-17 10:34 -0800

Show all headers | View raw


On 1/16/12 6:16 AM, Roedy Green wrote:
> What if you have two enum classes that have similar structure, e.g.
> similar method names, similar instance variables or similar enum
> constants.
>
> Is there any way to specify that similarity in one place or to use
> interfaces, abstract classes, EnumSets or inheritance to enforce the
> parallel structure?  I have not found a way.

Enums can implement interfaces:

public enum MyEnum implements Runnable {
    A { public void run() { System.out.println("A Runs!"); } },
    B { public void run() { System.out.println("B is an also ran."); } }
    ;
}

But they can not extend other classes.  Enum *constants* however 
automatically extend the (automatically abstract) Enum class. So you can 
have abstract methods in the base enum class.

public enum MyEnum {
    A { public void run() { System.out.println("A Runs!"); } },
    B { public void run() { System.out.println("B is an also ran."); } }
    ;

    public abstract void run();
}

It sounds like you want a combination of abstract methods and interfaces.

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

enum paralellism Roedy Green <see_website@mindprod.com.invalid> - 2012-01-16 06:16 -0800
  Re: enum paralellism Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-01-16 10:33 -0500
    [OT] East and West in Oz (Was: enum paralellism) Lew <noone@lewscanon.com> - 2012-01-16 10:32 -0800
    Re: enum paralellism Roedy Green <see_website@mindprod.com.invalid> - 2012-01-17 10:08 -0800
      Re: enum paralellism Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-17 10:37 -0800
  Re: enum paralellism Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-01-17 10:34 -0800

csiph-web