Java 使用枚举将用户输入限制为特定值
当有人创建Java 使用枚举将用户输入限制为特定值,java,enums,Java,Enums,当有人创建Movie对象时,他们只传入我定义的showingStatus列表,我如何以这种方式进行限制 我还想定义get和set方法,但它们会抛出注释中指出的错误 public class Movie { private String title, director; private float overallRating; private enum showingStatus {ComingSoon, Preview, NowShowing}; public
Movie
对象时,他们只传入我定义的showingStatus
列表,我如何以这种方式进行限制
我还想定义get和set方法,但它们会抛出注释中指出的错误
public class Movie {
private String title, director;
private float overallRating;
private enum showingStatus {ComingSoon, Preview, NowShowing};
public Movie(String title, enum showingStatus, String director)
{
this.title = title;
this.showingStatus = showingStatus;
this.director = director;
overallRating = 0;
}
}
我想这可能就是你要找的
public void setShowingStatus(enum showingStatus){ this.showingStatus = showingStatus;} // showingStatus cannot be resolved or not a field
public String getShowingStatus() { return showingStatus; } // showingStatus cannot be resolved to a variable
编辑:
这是同样的事情。传入变量时不能声明enum
类型。不管你做了什么。在本例中,我将其设置为ShowingStatus,因此您会说:
public class Movie {
private String title, director;
private float overallRating;
private ShowingStatus showingStatus;
public enum ShowingStatus {ComingSoon, Preview, NowShowing}
public Movie(String title, ShowingStatus showingStatus, String director)
{
this.title = title;
this.showingStatus = showingStatus;
this.director = director;
overallRating = 0;
}
}
要允许其他类使用ShowingStatus枚举,请通过执行以下操作创建单独的枚举文件:
public void setShowingStatus(ShowingStatus showingStatus){ this.showingStatus = showingStatus;} // showingStatus cannot be resolved or not a field
public ShowingStatus getShowingStatus() { return showingStatus; } // showingStatus cannot be resolved to a variable
现在,其他类应该能够调用ShowingStatus.ComingSoon或ShowingStatus中的任何其他枚举元素。您已经在这样做了!陛下它在我的构造函数定义上抛出了很多错误。错误是什么?
此行有多个标记
-标记上的语法错误“,”,无效的BlockStatements
-只能在顶级类或接口内或在静态上下文中定义成员enum showingStatus。
-类型showingStatus正在隐藏类型Movie。showingStatus
-标记“enum”上的语法错误,应为类型。
-标记“enum”上的语法错误,应为bype。
是,谢谢,这就是我要找的。另一个问题是如何创建电影
对象?正在制作电影myMovie=新电影(“myTitle”、“ComingSoon”、“myDirector”)代码>不起作用电影myMovie=新电影(“myTitle”,ShowingStatus.ComingSoon,“myDirector”)代码>悉达多说的正是。请记住,Enum
不等于String
。是的,我对使用Enum是新手。现在我明白了。但是,当我尝试在另一个类中创建Movie
对象时,出现了一个错误。似乎无法导入枚举<代码>导入静态电影.ShowingStatus代码>产生错误无法解析导入电影
如何定义枚举,以便同一包(默认包)中的所有类都可以访问它?您始终可以在电影
之外创建ShowingStatus
,以便其他类可以使用它。就像其他类可以自由调用的单独文件一样。
public enum ShowingStatus {
ComingSoon, Preview, NowShowing
}