加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 06:00:41 所属栏目:Java 来源:网络整理
导读:我有一个具有主要方向的枚举课程(北,东,南,西): public enum Direction { NORTH,EAST,SOUTH,WEST;} 有没有办法能够使用同一个东西的多个名字?例如这样的: public enum Direction { NORTH or N,EAST or E,SOUTH or S,WEST or W;} 实际上,我想要的是能够并
我有一个具有主要方向的枚举课程(北,东,南,西):
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等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读