我列表中的项目可以具有严重性级别(这些级别为:信息,警告,错误,延迟,......)
我想以OOP方式对其进行编程,以便在需要时可以轻松添加更多严重性级别。 我使用Java已经有一段时间了,所以我不确定如何以正确的方式做到这一点。
我拥有的是:
Public class ListItem
{
int sev;
String name;
public ListItem(String name, int s)
{
this.name = name; this.sev = s;
}
...
}
严重性应该有一个整数(如“1”)和一个名称(如“信息”)
我想'预定义'严重性如:
public static final int WARNING = 1;
public static final int ERROR = 2;
但是,如果列出项目的严重性为“1”,我怎么能显示名称'WARNING'? 我有最好的方法吗?
谢谢,
答案 0 :(得分:3)
您应该使用枚举而不是常量:
enum Level {
INFO, WARNING, ERROR;
}
您可以使用Level
toString()
Level level = Level.INFO;
System.out.println(level.toString());
打印
INFO
更改为ListItem(String name, Level level)
的优势在于,您无法创建ListItem
,其int
值未定义为有效级别。
答案 1 :(得分:0)
如果对常量使用int
s,实际上会丢失任何类型信息,因此键入安全性。这就是为什么它最好使用“类型安全枚举”,特别是Java enum
。每个enum
成员都是一个成熟的对象,因此您可以添加任何方法。
答案 2 :(得分:0)
1。 enum
非常适合您的需要。
2。此处,value of the variable
在枚举列表的指定值中仅 。因此,您将确认只有有效值
过去了。强>
<强>例如强>
public enum Level{
WARNING, ERROR;
}
答案 3 :(得分:0)
这实际上取决于您希望如何将系统扩展到未来。如果您介意修改代码,enum
非常适合该任务。
但是,如果您想通过引入它们来添加新级别(无需修改原始代码),那么最好创建一个提供所需基本功能的接口或类。
显然,您需要实施Comparable
以使您的生活更轻松