相关疑难解决方法(0)

Java枚举和具有私有构造函数的类之间有什么区别?

我试图理解Java枚举是如何工作的,我得出的结论是它与普通的Java类非常相似,它的构造函数被声明为private.

我刚刚得出这个结论,并不是基于太多的想法,但我想知道我是否想念任何东西.

下面是一个简单的Java枚举和一个等效的Java类的实现.

public enum Direction {
    ENUM_UP(0, -1),
    ENUM_DOWN(0, 1),
    ENUM_RIGHT(1, 0),
    ENUM_LEFT(-1, 0);


    private int x;
    private int y;

    private Direction(int x, int y){
        this.x = x;
        this.y = y;
    }
    public int getEnumX(){
        return x;
    }
    public int getEnumY(){
        return y;
    }
}
Run Code Online (Sandbox Code Playgroud)

上面和下面的代码有什么区别?

public class Direction{
    public static final Direction UP = new Direction(0, -1) ;
    public static final Direction DOWN = new Direction(0, 1) ;
    public static final Direction LEFT = new Direction(-1, 0) ; …
Run Code Online (Sandbox Code Playgroud)

java enums enumeration

58
推荐指数
4
解决办法
4万
查看次数

Enum和enum之间的区别

enum有valueOf(string)获取枚举常量的方法,并且java.lang.Enum类名中valueOf(enumClassName, string) 我所发现的同一类型的方法都给出相同的输出.那么还有什么其他差异.如果没有差异那么为什么JSL添加Enum.valueOf()

enum Season {
    WINTER,SUMMER
}

class Test {
    public static void main(String[] args) {
        String season = "WINTER";

        //switch (Season.valueOf(colObject))  // following line achieves same thing
        switch (Enum.valueOf(Season.class, season)) // any other difference between both approach
        {
            case WINTER: {
                System.out.println("Got it in switch case= VENDOR");
                break;
            }
            default:
                System.out.println("Fell thru.");
                break;
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

java enums

4
推荐指数
1
解决办法
2661
查看次数

标签 统计

enums ×2

java ×2

enumeration ×1