作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个枚举 Direction
,我想制作一个包含该枚举所有值的临时列表,然后能够从该列表中删除或添加值。
public enum Direction {
TOP, RIGHT, BOTTOM, LEFT
}
List<Direction> directions = Arrays.asList(Direction.values());
directions.remove(0); // error
directions.add(Direction.BOTTOM); // error
使用我当前的代码,当我删除 0 处的元素或添加任何元素时,我会收到运行时异常 java.lang.UnsupportedOperationException
。所以我想这样我得到的列表是不可变的?我怎样才能正确地做到这一点?
最佳答案
Arrays#asList
返回一个 List
,它不支持 add
或 remove
元素,因为它只是包装了一个大批。相反,创建一个新的 ArrayList
并将 Arrays#asList
的结果作为参数传递:
List<Direction> directions = new ArrayList<>(Arrays.asList(Direction.values()));
关于java - 制作一个列表并将其初始化以包含枚举的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32040856/
我是一名优秀的程序员,十分优秀!