是否可以访问枚举中的值和枚举之外的值

时间:2015-05-10 06:29:50

标签: java variables enums scope

例如,我在另一个类中定义了一个枚举,

EnumClasses.java,我可以通过

访问不同类别的那个
    import java.io.DataInputStream;

    public class Thread1 extends Thread {

    declared variables here (variables not relevant)
    initiated variables here (variables not relevant)
    DataInputStream dis;

    }
    public void run() 
    {
        while (true)
        {
          try {
    int mesgType = dis.readInt(); 
            System.err.println(mesgType);

            switch (mesgType) {
    case EnumClasses.MYENUM:

    String data;
    data = myData;

    break;
                 } 
             }
         }
    }

我想知道是否可以在该ENUM之外的ENUM内访问该值。 E.g。

    public static void myMethod(){

    System.out.print(data);

    }

这是否可能,如果可能,我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果我理解这个问题,似乎你想以某种方式阅读Enum的内容。根据我的想法,一个简单的例子如下:

enum Numbers {
    ONE ( 1, "One" ),
    TWO ( 2, "Two" );

    private int value;
    private String name;

    private Numbers ( int value, String name ) {
        this.value = value;
        this.name = name;
    }

    public int getValue () {
        return this.value;
    }

    public String getName () {
        return this.name;
    }
}

public class EnumExample {

    private void performTask () {
        System.out.println ( Numbers.ONE );
        Numbers numbers = Numbers.ONE;
        System.out.println ( "Value: " + numbers.getValue () );
        System.out.println ( "Name: " + numbers.getName () );
    }

    public static void main ( String[] args ) {
        new EnumExample ().performTask ();
    }
}

输出:

C:\Mine\java\bin>java EnumExample
ONE
Value: 1
Name: One

答案 1 :(得分:0)

在Enum上看到这个例子:

public enum Level {
    HIGH,
    MEDIUM,
    LOW
}

public class Test
{
    public enum Status {
        Opened,
        Closed,
        Waiting
    }
}

public class abc {

    public static void main(String args[]) {            
        System.out.print(Level.HIGH);
        System.out.print(Test.Status.Opened);
    }
}

一个很好的参考Java Enums