enumを使ったメソッドを作成した時の備忘録。
変数に決められた値を入れるときは、enum型を使うのは基本のようですね。
private enum MDID {
IPHONE("001"),
ANDROID("002"),
IPAD("003"),
TABLET("004");
private String modelId = "";
private MOID(String modelId) {
this.modelId = modelId;
}
public String getId() {
return this.modelId;
}
}
private enum SVID {
PRICE("0010"),
DATA("0020"),
NEWS ("0030");
private String serviceId = "";
private SVID(String serviceId) {
this.serviceId = serviceId;
}
public String getId() {
return this.serviceId;
}
}
public Map<String,String> getState() {
Map<String String> ret = new HashMap<String,String>();
String contentModelId = "";
List<String> contentServiceList = new ArrayList<String>();
if (条件1) {
contentModelId = MDID.IPHONE.getId(); //001
contentServiceList.add(SVID.PRICE.getId()); //0010
} else if (条件2) {
contentModelId = MDID.ANDROID.getId(); //002
contentServiceList.add(SVID.DATA.getId()); //0020
} else if (条件3) {
contentModelId = MDID.IPAD.getId(); //002
contentServiceList.add(SVID.NEWS.getId()); //0030
} else if (条件4) {
contentModelId = MDID.TABLET.getId(); //003
contentServiceList.add(SVID.DATA.getId()); //0020
contentServiceList.add(SVID.NEWS.getId()); //0030
}
if(contentServiceList.size() == 0) {
return ret;
}
ret = this.AnotherMethod(contentModelId,contentServiceList)
return ret;
}
簡単に解説
MOID.IPHONEにすることで、enum内のコンストラクが動く
contentModelId = MDID.IPHONE
コンストラクトによって変数modelIdに引数である001が入る。
IPHONE("001");//引数は001
private String modelId = "";
private MOID(String modelId) { //コンストラクトが動く 引数は001
this.modelId = modelId; //001が変数のmodelIdに入る
}
public String getId() {
return this.modelId;
}
getId()でmodelIdを取得するので001がcontentModelIdに入る
contentModelId = MDID.IPHONE.getId();
enumの基本的な使い方でした