如何使用枚举?

时间:2015-10-21 08:39:04

标签: java enums

我第一次使用Java编写了一个大程序,但这次我使用的是JavaFx。

我想在我的代码中使用Enum,所以我写了一个Enum类

public enum Directions {
    NORTH,
    SOUTH,
    WEST,
    EAST
}

我写了方法:

public void changeDirection(Directions newDirections){// kommt noch
    switch (newDirections){
       case newDirection.NORTH: direction = 'n'; break;
       case newDirection.SOUTH: direction = 's'; break;
       case newDirection.WEST: direction = 'w'; break;
       case newDirection.EAST: direction = 'e'; break;
       default: break;
   }
}

因为我还没有主要课程,而且我的编译器不能正常工作,我需要问我做的是否正确。

1 个答案:

答案 0 :(得分:-1)

如果仍然使用开关,枚举的重点是什么?只需在包含n / s / w / e的枚举中添加char类型的字段。然后它就像newDirection.getChar()。这是一个例子。我还添加了一个方法byChar来从char获取枚举元素。

public enum Direction {
    NORTH, SOUTH, WEST, EAST;
    final char  c;

    private Direction() {
        this.c = Character.toLowerCase(this.name().charAt(0));
    }

    public char getChar() {
        return this.c;
    }

    public static Direction byChar(final char c) {
        for (final Direction dir : Direction.values())
            if (dir.c == c) return dir;
        throw new NoSuchElementException("No direction for " + c);
    }
}