Java严重性级别实现

时间:2012-07-25 09:45:27

标签: java oop

我列表中的项目可以具有严重性级别(这些级别为:信息,警告,错误,延迟,......)

我想以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'? 我有最好的方法吗?

谢谢,

4 个答案:

答案 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以使您的生活更轻松