0

重大度レベルを持つことができるリストに項目があります (これらのレベルは次のとおりです: 情報、警告、エラー、遅延、...)

必要に応じて重大度レベルを簡単に追加できるように、これを 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

4 に答える 4

3

定数の代わりに列挙型を使用する必要があります。

enum Level {
   INFO, WARNING, ERROR;
}

Levelを使用して印刷できますtoString()

Level level = Level.INFO;
System.out.println(level.toString());

版画

INFO

に変更すると、有効なレベルとして定義されていない値で を作成できなくListItem(String name, Level level)なるという利点があります。ListItemint

于 2012-07-25T09:46:30.623 に答える
0

1. enumあなたのニーズにぴったりです。

2.ここでは、列挙されたリストから指定された値1 つだけvalue of the variableになります。したがって、有効な値のみが渡されることが確認されます。

例えば:

public enum Level{

    WARNING, ERROR;

}
于 2012-07-25T09:51:23.787 に答える
0

それは、システムを将来どのように拡張したいかによって異なります。コードを変更する必要がある場合は、enumがそのタスクに適しています。

ただし、(元のコードを変更する必要なく) 新しいレベルを導入することで、時間の経過とともに新しいレベルを追加する場合は、必要な基本機能を提供するインターフェイスまたはクラスを作成することをお勧めします。

明らかに、あなたはComparableあなたの人生を楽にするために実装したいと思うでしょう

于 2012-07-25T10:00:30.703 に答える
0

定数に sを使用するintと、事実上すべての型情報が失われるため、型の安全性が保証されます。そのため、「タイプセーフな列挙型」、特に Java を使用することが望ましい理由enumです。すべてenumのメンバーは本格的なオブジェクトであるため、任意のメソッドを追加できます。

于 2012-07-25T09:47:43.583 に答える