2 zhangrui9x zhangrui9x 于 2014.08.07 20:02 提问

Unhandled exception type CloneNotSupportedException
            for (int j=0;j<testResult.size();j++) {
                result.add(testResult.get(j).clone());
            }

我这么写的话编译时不会报错
但是这么写即要求我surround with try/catch ,就算我加了try ,它还是报这个错:

            testResult.forEach(score->result.add(score.clone()));

2个回答

AA427
AA427   2014.08.07 22:37

testResult.get(j) 这个的类型不支持clone方法吧

qwuack
qwuack   2014.08.08 09:11

为什么要调用clone方法呢?
部分对象没有实现Cloneable接口,就报 CloneNotSupportedException 了。

qwuack
qwuack 那你好好玩吧。。。
大约 3 年之前 回复
zhangrui9x
zhangrui9x 关键是我就想实现深拷贝,而且真正的问题是用forEach就会报错,而且我刚发现用forEach貌似try都加不了
大约 3 年之前 回复
qwuack
qwuack 不用调用啊,浅拷贝就行了吧。。。
大约 3 年之前 回复
zhangrui9x
zhangrui9x 那用什么方法实现,望指教
大约 3 年之前 回复
qwuack
qwuack 不需要调用clone方法
大约 3 年之前 回复
zhangrui9x
zhangrui9x result和testresult都是对象的list,我想实现list的拷贝,问题是编译期报的错,实现cloneable接口是运行期的问题吧,
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片