Java:我可以在枚举中使用两个不同的名称来算作相同的东西吗?

前端之家收集整理的这篇文章主要介绍了Java:我可以在枚举中使用两个不同的名称来算作相同的东西吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个具有主要方向的枚举课程(北,东,南,西):
public enum Direction {
    NORTH,EAST,SOUTH,WEST;
}

有没有办法能够使用同一个东西的多个名字?例如这样的:

public enum Direction {
    NORTH or N,EAST or E,SOUTH or S,WEST or W;
}

实际上,我想要的是能够并且向N或NORTH的变量签名,并且这两个操作是完全相同的.

例:

Direction direction1=new Direction.NORTH;
Direction direction2=new Direction.N;
//direction1==direction2

解决方法

public enum Direction {
  NORTH,WEST,;

  // Convenience names.
  public static final Direction N = NORTH;
  public static final Direction E = EAST;
  public static final Direction S = SOUTH;
  public static final Direction W = WEST;
}

是合法的,但是“N”不能与自动生成的valueOf方法一起使用.即Direction.valueOf(“N”)将抛出一个IllegalArgumentException而不是返回Direction.NORTH.

你也不能写案例N:.您必须在其值为“方向”的开关中使用全名.

除此之外,缩写形式应该与完整版一样工作.您可以在EnumSets中使用Direction.N,将其比较为Direction.N == Direction.NORTH,获取名称()(即“NORTH”),导入静态yourpackage.Direction.N等.

猜你在找的Java相关文章