我有一个如下所示的java类:
public class Location
{
public String city;
public String state;
public String country;
public enum type{Beach,Forest,Hills,Desert};
}
如上type
成员是枚举类型,我想指定多个枚举值来输入类型属性,就像一个Location
对象有多个类型属性一样{ {1}}以及Hills
。
是否可以在不使用数组的情况下为一个对象分配枚举值?
答案 0 :(得分:2)
您需要Collection
来存储可变数量的值。由于您不希望重复使用Set
。对于枚举存在java.util.EnumSet
,它具有存储多个值的紧凑而有效的方式:
public class Location
{
public enum Type {Beach,Forest,Hills,Desert};
public String city;
public String state;
public String country;
public EnumSet<Type> types = EnumSet.noneOf(Type.class); // start with empty set
}
答案 1 :(得分:-1)
您可以将它们存储在类变量中:
private final Terrain first = Terrain.BEACH;
private final Terrain second = Terrain.DESERT;
同样,如果更合适,您可以将它们存储在一个地形集合中:
private final Set<Terrain> terrains = new HashSet<>(Arrays.asList(Terrain.BEACH, Terrain.DESERT));
或使用EnumSet:
private final EnumSet<Terrain> terrains = EnumSet.of(Terrain.BEACH, Terrain.DESERT);
另一方面,在他们自己的文件中声明枚举更常规,我假设它将被称为Terrain
。此外,常量(因此也是枚举值)通常用大写字母书写。