我正在考虑一个Java设计,我想要一个字符串对象,但比类String
更类型安全。这是因为我有许多用于Hibernate的'POJO'对象,代表我的数据库表。每个类都有大量代表类的属性公共静态字段,即:类型安全扩展字符串 - Java
public class PersistantBean {
public static String PROP_FIELD_COLUMN_ONE="columnOne";
public static String PROP_FIELD_COLUMN_TWO="columnTwo";
// [...]
当我们需要在一个通用的方法来访问属性使用这些属性,例如代码我正在写.parseAndSet(PROP_FIELD_PRICE,"£3.00")
。
我希望能够更强的类型添加到PROP_FIELD_...
领域,这样我可以写
public class PersistantBean {
public static PropertyName PROP_FIELD_COLUMN_ONE="columnOne";
public static PropertyName PROP_FIELD_COLUMN_TWO="columnTwo";
// [...]
以最小的改动项目的其他部分,
使parseAndSet会看像:
public void parseAndSet(PropertyName prop, String priceToParse)
从本质上讲,我想PropertyName
是一个类似于String的类型,除了编译器之外,如果我试图将String
放在的位置,那么这个类型就是这种可能的设计模式。 (虽然现在我提到它,但是Enums可能是要走的路。)
为什么使用这种模式,而不是使用实际的枚举?这种模式与JDK 1.4相关,但它不再相关。 –
我要回应上面的评论,因为就书面而言,在使用枚举方面我没有看到任何优势。 –
好的,我同意,回答更新。 – donturner