java - 在java中获取和设置枚举

标签 java enums

我似乎无法弄清楚这一点: 我希望类的属性可以作为枚举进行设置和获取。所涉及的属性是对象形状,可以是凹形、凸形或未定义的。所以我认为使用枚举会很好:

    private enum Shape {CONCAVE, CONVEX, UNDEFINED}

这是我的构造函数:

Vertex()
{
    point = new int[] {0, 0};
    Shape shape = Shape.UNDEFINED;
}

这是它的 setter :

 public void setShape(Shape shape)
{
   Shape = shape;
}

以及相应的访问器:

public Shape getShape()
{
    return  Shape;
}

这是编译器错误:

./Vertex.java:27: cannot find symbol symbol : variable Shape location: class Vertex Shape = shape; ^ ./Vertex.java:56: cannot find symbol symbol : variable Shape location: class Vertex return Shape; ^

我尝试过各种语法组合,这是我所见过的最接近的。 我还需要知道如何通过“调用”类中的 setter 方法正确传递枚举值...

最佳答案

我不太明白你现在拥有什么,但我认为你需要:

public class Vertex {

    private enum Shape {CONCAVE, CONVEX, UNDEFINED}

    private Shape shape;

    private int[] point;

    public Vertex() {
        point = new int[] {0, 0};
        shape = Shape.UNDEFINED;
    }

    public Shape getShape() {
        return shape;
    }

    public void setShape(Shape shape) {
        this.shape = shape;
    }
}

关于java - 在java中获取和设置枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24736785/

相关文章:

java - GJava中从标准输入到标准输出的压缩

java - netbeans - Java 数据库服务器不启动

java - 令人困惑的 Java 扩展

java - Log4j V2 自定义布局

asp.net - RadGrid - 我可以将列数据字段属性设置为枚举描述吗?

java - 在 Java 应用程序中处理引用数据的类型安全方法

java - 使用枚举值初始化 double 组 java

java - 如何使用 A 类中的字段作为 B 类构造函数的参数?

java - 如何解决错误 : "MyClass.INSTANCE" is not a statement when I try to instantiate a singleton class in Java?

c++ - 在集合 C++ 中使用枚举时遇到问题