使用Java,如何限制对象属性具有特定值?我想创建一个表示“位置类型”的Java对象,但是我想将类的使用限制为只有大约100个表示所有可能类型的字符串?这是什么设计模式?
所有我能想到的是创建一个String arraylist,每次用户实例化该对象时,我会迭代整个列表寻找匹配。这对我来说似乎有点像黑客,我想做得对。
答案 0 :(得分:4)
如何使用Java的Enumerations?你的对象只是那个Enum的类型,然后你就会被你的枚举中的大约100个字符串限制。
答案 1 :(得分:1)
您可以使用允许值的HashSet(查找更快,您只想知道它是否包含在内)用于字符串或枚举。
答案 2 :(得分:1)
对于100个左右的固定值,enum
类型是最佳答案。但有几点需要注意:
如果值集不已修复...,您可以将它们硬连接到您的代码......那么enum
类将不会工作。 Java中没有enum
类的形式允许您在没有重新编译的情况下向现有枚举类添加新值,等等。
如果您的非常大值,则enum
类将遇到JVM规范强加的一个或多个限制。例如,编译器为enum
类生成的静态初始化代码不能包含超过64K的字节码。
答案 3 :(得分:0)
另一个想法,因为它是一个有界集合,将为这些字符串创建一个枚举。使object属性成为枚举类型。不用担心。