Enums defined in a class is a static nested class?

FreshAir :

For an enumeration defined in a class, like

class OuterClass {
    public enum Method {
        GET,
        PUT,
        POST,
        DELETE;
    }
}

Is the enumeration a static nested class (https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)? It seems to be the case judging from the syntax used to refer to it. Or is it a non-static nested class (an inner class)?

Dawood ibn Kareem :

The JLS says

An enum declaration specifies a new enum type, a special kind of class type.

So it looks like the word from Oracle is that enums are classes.

If you declare an enum inside another class, then yes, it's an inner class. And enums are always static, so yes, it's fair to call an enum a static inner class (or nested class) when it's declared in another class.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=471375&siteId=1