2

Enumクラスを使用して何かを比較する利点は何ですか。の欠点は何ですか:

public static final String TRUE = "true";
public static final String FALSE = "false";

public void method1(){

    if(TRUE.equals(inputString)){
        //do some logic
    }
    else if(FALSE.equals(inputString)){
        //do some other logic
    }
}

Enum例の代わりに使用することが推奨されるのはなぜStringですか?

4

2 に答える 2

5

重要な理由の 1 つは、 を使用するとenum、値が または のいずれかであることがわかっていることTRUEですFALSE。それ以外にはあり得ません。ただし、Stringは任意の値を持つ可能性があるため、それを確認する必要があります。これにより、コードが単純になり、理解しやすくなります。

もう 1 つは、enum要素をで比較できますが、オブジェクトを比較==するには比較的遅いequals()呼び出しを使用する必要があることです。String

于 2012-04-21T03:52:57.650 に答える
2

列挙型を使用する必要がある理由:

  • 列挙型は厳密に型指定されています
  • 列挙型の比較はより高速==です。代わりに使用できますequals()
  • 列挙型は、インターフェイス、メソッド、および関数を実装できます。たとえば、さまざまなメトリック システムの列挙型Metric.EUCLID.distance(Point a, Point b));
  • すぐに使える便利なメソッドがたくさんあります-MyEnum[] all = MyEnum.values(); MyEnum.valueOf("ENUM_NAME");
  • Java 5 以降では switch ステートメント、Java 7 以降では String で使用できます。
  • IMO コードが少し読みやすくなります。
于 2012-04-21T07:30:06.230 に答える