【发布时间】:2017-06-02 04:17:19
【问题描述】:
我正在尝试理解 Java 中的枚举,但目前找不到解释我所问问题的帖子。
我有一个Person 接口和一个PersonEO 类。 Person 接口的两个方法是 setGender 和 getGender。我想将性别作为枚举。
我是在接口中创建枚举并将其传递给类还是在类中创建枚举?
这是我目前一直在尝试的,但无法让枚举正确传递给类,并且不真正理解它将如何在程序中流动。
public interface Person{
public enum gender{
Female,
Male,
Unknown;
private String gender;
public String getGender(){
}
void setGender(){
}
}
------------------------------------------------------
public class PersonEO implements Person {
//Both override methods are not seen as methods from the interface
@Override
public String getGender() {
return gender;
}
@Override
public void setGender() {
//Not sure how to set the gender from the enum
this.gender = gender;
}
}
请举个例子。
【问题讨论】:
-
创建一个成员变量 Gender 并在你的 setter 和 getter 中使用它。
-
一般来说,您的枚举类型中不会有设置器。
-
在
Person.gender(应该是Gender)的代码中声明了一个空方法setGender。该命名约定意味着缺少方法参数来传递值来设置。目前尚不清楚gender(Gender) 中的setGender方法打算做什么,但无论它应该设置什么,在枚举中都很少看到setter。确切地说,这并没有错,只是出于枚举常量的目的而有些不合时宜。它们不应该正常保持状态,因为在许多情况下都会使用相同的常量。此外,Person缺少右花括号。
标签: java class enums interface