|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.apache.commons.lang.enum.Enum
org.apache.commons.lang.enum.ValuedEnum
タイプセーフな int の値を使用した enum のスーパークラスとなる抽象クラスです。
注: Java クラスローダの処理に依存して結果が変わるため Enum オブジェクトの比較には == ではなく equals() メソッドを使う必要があります。 The equals() メソッドは初めに == を実行するため、たいていの場合は同じ結果になります。
このクラスは継承して使用する必要があります。 例えば:
public final class JavaVersion extends ValuedEnum {
//standard enums for version of JVM
public static final int JAVA1_0_VALUE = 100;
public static final int JAVA1_1_VALUE = 110;
public static final int JAVA1_2_VALUE = 120;
public static final int JAVA1_3_VALUE = 130;
public static final JavaVersionEnum JAVA1_0 = new JavaVersionEnum( "Java 1.0", JAVA1_0_VALUE );
public static final JavaVersionEnum JAVA1_1 = new JavaVersionEnum( "Java 1.1", JAVA1_1_VALUE );
public static final JavaVersionEnum JAVA1_2 = new JavaVersionEnum( "Java 1.2", JAVA1_2_VALUE );
public static final JavaVersionEnum JAVA1_3 = new JavaVersionEnum( "Java 1.3", JAVA1_3_VALUE );
private JavaVersionEnum(String name, int value) {
super( name, value );
}
public static JavaVersionEnum getEnum(String javaVersion) {
return (JavaVersionEnum) getEnum(JavaVersionEnum.class, javaVersion);
}
public static JavaVersionEnum getEnum(int javaVersion) {
return (JavaVersionEnum) getEnum(JavaVersionEnum.class, javaVersion);
}
public static Map getEnumMap() {
return getEnumMap(JavaVersionEnum.class);
}
public static List getEnumList() {
return getEnumList(JavaVersionEnum.class);
}
public static Iterator iterator() {
return iterator(JavaVersionEnum.class);
}
}
The above class could then be used as follows:
public void doSomething(JavaVersion ver) {
switch (ver.getValue()) {
case JAVA1_0_VALUE:
// ...
break;
case JAVA1_1_VALUE:
// ...
break;
//...
}
}
上に見られるように各 enum は名前と値をもっています。
これには getName と getValue を使用することによりアクセスできます。
getName and getValue.
getEnum と iterator のメソッドの使用をお勧めします。
不幸なことに、Javaの制限のために各サブクラス毎にこのようなコードが必要となってしまいます。
この代案は EnumUtils クラスの使用です
getEnum and iterator methods are recommended.
Unfortunately, Java restrictions require these to be coded as shown in each subclass.
An alternative choice is to use the {@link EnumUtils} class.注: このクラスのオリジナルは Jakarta Avalon プロジェクト内にあります。
| 入れ子クラスの概要 |
| クラス org.apache.commons.lang.enum.Enum から継承した入れ子クラス |
|
| フィールドの概要 | |
private int |
iValue
enum の持つ値。 |
| クラス org.apache.commons.lang.enum.Enum から継承したフィールド |
|
| コンストラクタの概要 | |
protected |
ValuedEnum(String name,
int value)
enum アイテムを生成します。 |
| メソッドの概要 | |
int |
compareTo(Object other)
順序をチェックします。 |
protected static Enum |
getEnum(Class enumClass,
int value)
クラスと値から Enum を取得します。 |
int |
getValue()
enum アイテムの値を取得します。 |
String |
toString()
Enum アイテムを読みやすい形で返します。 |
| クラス org.apache.commons.lang.enum.Enum から継承したメソッド |
equals, getEnum, getEnumList, getEnumMap, getName, hashCode, iterator, readResolve |
| クラス java.lang.Object から継承したメソッド |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| フィールドの詳細 |
private final int iValue
| コンストラクタの詳細 |
protected ValuedEnum(String name,
int value)
name - enum アイテムの名称
value - enum アイテムの値
| メソッドの詳細 |
protected static Enum getEnum(Class enumClass,
int value)
enumClass - 取得元となる Enum クラス
value - 取得する Enum の値
IllegalArgumentException - enum クラスが null だった場合
public final int getValue()
public int compareTo(Object other)
Comparable 内の compareToEnum 内の compareToother - 比較対照となるオブジェクト
ClassCastException - 比較対照が Enum でなかった場合
NullPointerException - 比較対照が null だった場合
Comparable.compareTo(Object)public String toString()
Enum 内の toStringtype[name=value] のフォームの文字列、例:
JavaVersion[Java 1.0=100]、 注 型の名前の中のパッケージ名は省略されます。
type[name=value], for example:
JavaVersion[Java 1.0=100]. Note that the package name is
stripped from the type name.
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||