我的意图是对ArrayList
进行简单的克隆,但在此之前,我在修改列表时遇到了一个问题。在列表中添加另一个元素
UnsupportedOrderException
为什么?
class Mine implements Cloneable {
public List<Integer> list;
Mine(List<Integer> mylist) {
this.list = mylist;
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
class Demo {
public static void main(String[] args) throws CloneNotSupportedException {
List<Integer> klist= Arrays.asList(10,20,30,40,50);
Mine m1=new Mine(klist);
m1.list.add(11); // <- why i am unable to add to the list
Mine m2= (Mine) m1.clone();
}
}
除了@danfirst的答案(现在还有@JonSkeet),您还可以创建自己的asList()
方法来返回可变的List
static public List<T> asMutableList(T ... elts) {
List<T> lst = new ArrayList<>(elts.length);
for (T el : elts) {
lst.add(el);
}
return lst;
}
数组.asList()
返回一个列表
数组在Java中具有固定大小,因此
Arrays.asList
返回的列表也必须具有固定大小-您不能添加到其中,也不能从中删除。
您可以创建一个新的ArrayList
List<Integer> list = new ArrayList<>(Arrays.asList(...));
尽管< code>ArrayList
仍然由一个数组支持,但它会在必要的地方创建一个新数组。数组是实现细节,而不是< code>Arrays.asList返回的现有数组的“视图”。
您无法更改Arrays返回的
(但它允许使用List
(使用
or
或类似方法)的元素数。asList
.set()
更改元素)。
在Arrays.asList的文档中:
返回的列表实现可选的 Collection 方法,但那些会更改返回列表大小的方法除外。这些方法使列表保持不变,并引发“不支持的操作异常”。
相反,您可以创建一个具有相同元素的ArrayList
:
List<Integer> klist= new ArrayList<>(Arrays.asList(10,20,30,40,50));
无法在下面的链接中执行右键单击操作。我们尝试了几乎所有的案例来实现自动化。https://the-internet.herokuapp.com/context_menu 我使用的是Selenium 3.3和geckodrivers的最新版本。 动作动作=新动作(驱动);行为moveToElement(元素)。点击();行为上下文单击(元素)。build()。执行();行为发送键(键。箭头向下)。发
我得到了"org.springframework.dao.数据完整性违反异常:无法执行语句;SQL[n/a];约束[null];嵌套异常是org.hibernate.exception.约束违反异常:无法执行语句"异常,同时将对象保存到存储库。 要求:计划将只有一个Cpricing对象,因此我添加了@OneToOne映射。下面是预期的表结构。 我在实体类中有以下代码更改: 当试图保存包含CPric
我有一个猫鼬模式 我最初设置了名称和电话字段的集合。我需要将集合更新为消息数组中的新消息和新地址到地址对象中。该函数还必须处理任何单个操作,即在某些情况下我只更新到消息数组或更新到名称和地址。所以我如何在单个函数中执行所有操作。
我试图在元素上执行拖放操作,但它没有发生。 这是我正在处理的页面的片段。在这里,我试图将磁贴“时间”拖动并放置在磁贴“批准”的位置。截图 这是我正在使用的代码。 代码 超文本标记语言 源元素 目标元素 如果你需要更多细节,请告诉我。
我做了一个简单的科学测验java应用程序,有4个框架:登录、菜单、测试和结果。 前三个帧工作正常,但当我单击显示结果时,它显示错误。这是我在Test JFrame中的代码。如果您愿意,我也可以发送其他帧的编码 这是我的错误 测试JFrame编码