7

これが決定的なステートメントであるかどうかはわかりませんが、JavaAPIは列挙型よりも定数intを優先しているように思われます。私が使用したAPIの部分から、代わりにを使用できfinal static intた可能性のある多くの定数に遭遇しました。enum私がたまたまこの瞬間を見つめているような例:

java.awt.BasicStrokeから:

public final static int CAP_BUTT = 0;
public final static int CAP_ROUND = 1;
public final static int CAP_SQUARE = 2;

実際、標準のJavaAPIクラスで使用される列挙型を見たことがないと思います。どうしてこれなの?

私は自分のアプリケーション用のAPIを設計しており(Java APIの約10億分の1ですが、それでも賢くしようとしています)、定数intまたはenumのどちらを使用するかを決定しようとしています。 この投稿は、私がまだ読んでいない非常に人気のある本を参照しています。これは、列挙型には多くの利点があることを意味します。同じスレッド内の他のほとんどの高得点の回答は同意します。では、なぜJavaは独自の列挙型機能を使用していないように見えるのでしょうか。

4

2 に答える 2

13

BasicStrokeJava1.5に到着した列挙型より前の日付。下位互換性のために、コードはそのまま残されています。新しいコードを書くときは、変数enumsよりも間違いなく優れた設計上の選択です。final static

于 2013-02-23T23:57:03.247 に答える
11

定数intが列挙型よりも優れていることとは関係ありません。列挙型がJDK5でのみ追加されたため、ほとんどのJava APIは、列挙型が使用可能になる前に作成されました。定数intが唯一のオプションであったため、使用されました。

Java APIが書き直された場合、はるかに多くの列挙型が含まれ、JDK6以降のAPIへの新しい追加でそれらが表示されることが期待できます。

アプリケーションにはおそらく列挙型を使用する必要があります。一般的には列挙型の方が適しています。

于 2013-02-23T23:55:37.600 に答える