インナーEnum
定義出来ないのかな?
追記:
定義できた。
まずBean
import java.util.HashMap; public class Bean { public enum Prop {FirstName, LastName}; private HashMap<Prop, Object> properties = new HashMap<Prop, Object>(); public Bean set(Prop prop, Object obj) { properties.put(prop, obj); return this; } public Object get(Prop prop) { return properties.get(prop); } }
次に利用側
public class TestMain { public static void main(String[] args) { Bean bean = new Bean(); bean.set(Bean.Prop.FirstName, "taro"); bean.set(Bean.Prop.LastName, "tanaka"); Bean bean2 = new Bean(); bean2.set(Bean.Prop.FirstName, "hanako").set(Bean.Prop.LastName, "suzuki"); System.out.println(bean.get(Bean.Prop.FirstName)); System.out.println(bean2.get(Bean.Prop.FirstName)); } }
taro hanako
こうやってBeanが持つプロパティが静的に決まれば
単純にHashMap
なぜなら、HashMap
文字列をBeanの利用側が「知って」いなければならないから。
でもValueのObjectが実際には何の型なのかは
利用側が知っていなければならない。
でもコード量は削減できるし、プロパティの有無は静的に決まるので
IDEのコード補完機能でもサクっと入力できる。