如何在变量中存储多个选项 - Java

时间:2010-09-22 07:38:53

标签: java

在Java中,我如何创建一个属性/字段/变量,它可以在任何时候存储几个选项/值,类似于较低级别的环境,您可以在其中设置变量中的位,每个都意味着不同的东西。我知道人们可以通过使用静态韵母或其他东西在Java中做到这一点,然后将它们全部OR化,但是不是更优雅的解决方案吗?例如,在C#中,您可以将[F​​lags]属性赋予Enum,然后将状态/值一起OR到该枚举的实例中。

有什么想法吗?

雷诺

3 个答案:

答案 0 :(得分:7)

好吧,您可以使用枚举,然后为该枚举设置EnumSet。没有更多信息,很难确切知道要推荐什么。当你自然地处理“选项”时,EnumSet是一个不错的选择 - 但是如果你有多个(例如高度和宽度;固定数量的值,它们自然地汇集在一起)然后我只是创建一个新类型来封装它们。

如果您能够提供您正在寻找的具体示例,我们可能会提供更多帮助。

答案 1 :(得分:1)

老式的方法(你仍然可以在许多库中找到)将使用int值或BitSet对位掩码进行编码,但是从JDK 1.5开始,EnumSet是首选的方法。这样做,as Jon Skeet says

答案 2 :(得分:0)

你的意思是像C ++联盟?这在Java中是不允许的,因为你失去了类型安全性;例如,这样您就可以引用Integer作为String输入的内容。