Enumといえば、列挙型と言われます。
列挙型はある変異のない特定の値群を指します。
例えば、性別といえば男と女しかないようなものですね。
/**
* サンプルEnum.
*/
public enum SampleEnum {
MEN,
WORMEN;
}
性別の例だと、こんな感じに記載しますね。
ですが、これだとちょっと使いにくいこともありますね。
例えば、データベースに性別を持っていて、
男:1,女:2などのコード値と紐付いている場合、
このEnumをそのまま使おうとするとちょっと不便ですね。
ところが、このEnum、値をもたせて関連付けることができます。
どう書いたらよいでしょうか??
まずは見てみましょう
package jp.co.tarchan.enumaddsample;
import org.apache.commons.lang3.StringUtils;
/**
* サンプルEnum.
*/
public enum SampleEnum {
MEN("1"),
WOMEN("2");
// この値がEnumのコード値になる
private String code;
// このコンストラクタを設定することで
// コード値とEnumが紐付けられる
private SampleEnum(String code) {
this.code = code;
}
// このメソッドでEnumのコード値を取得する
public String getCode() {
return code;
}
/**
* コード値からEnumを取得する.
* @param code コード値
* @return サンプルEnum
*/
public SampleEnum getEnum(String code) {
for (SampleEnum sampleEnum : SampleEnum.values()) {
if (StringUtils.equals(sampleEnum.getCode(), code)) {
return sampleEnum;
}
}
return null;
}
}
解説
まずはEnum定義の後ろに値をカッコ書きします。
これは文字列でも数値でも大丈夫です。
次にそのコード値を定義します。
private String code;
この部分ですね。
値が文字列なのでStringとなります。
その次。
Enumのコンストラクタです。
これがキモになります。
このコンストラクタでEnum定義と値が紐付けられるのです。
public String getCode()
ここではEnumに定義されたコードを取得するメソッドになります。
また今回はおまけで、
コード値を引数としてEnumを返すメソッドも記載しておきました。
これが意外に現場では登場する機会が多いので・・・。
まとめ
ということで、Enumに値をもたせる書き方でした。
値が持てると列挙型は意外に使うシーンが多いかと思いますので、
ぜひ使ってみてください。
それでは!

20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。
今風にいうとフルスタックエンジニアということになるのでしょうか??
→ 詳細プロフィールというか、生い立ちはこちら
→スキルシートをご覧になる場合はこちら
→お仕事のご依頼やお見積りなどお問い合わせはこちらから!



コメント