- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为什么以下代码在 JDK7 中抛出 CloneNotSupportedException 而在 JDK6 中不抛出?
public class DemoThread extends Thread implements Cloneable {
/**
* @param args
*/
public static void main(String[] args) {
DemoThread t = new DemoThread();
t.cloned();
}
public DemoThread cloned()
{
try {
return (DemoThread) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return null;
}
}
最佳答案
这是 Thread 在 SE 7 中对 clone()
的实现
/**
* Throws CloneNotSupportedException as a Thread can not be meaningfully
* cloned. Construct a new Thread instead.
*
* @throws CloneNotSupportedException
* always
*/
@Override
protected Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
线程从未被设计为被克隆。做一些阅读引发了其中一条评论,我发现这总结得很好:"But we either have to disallow cloning or give it meaningful semantics - and the latter isn't going to happen." -- 大卫·霍姆斯
关于java - CloneNotSupportedException 即使在实现 Cloneable 时也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14052219/
我正在编写一个程序,该程序构造一个包含各种对象的集合。但是,当我尝试克隆该集时,尽管声明了 CloneNotSupportedException 并实现了 Cloneable 接口(interface
我正在浏览一些旧代码,发现以下内容: public class MyClass implements Cloneable { public Object clone() { O
public class test implements Cloneable { @Override public test clone() { return (tes
在我的actionPerformed方法中,我调用克隆对象的“copy()”,但编译器给我这个错误:“java.awt.event.ActionListener;重写的方法不会抛出java.lang.
要克隆类的对象,我们实现 Cloneable 接口(interface),并重写克隆方法: protected Object clone() throws CloneNotSupportedExcep
为什么以下代码在 JDK7 中抛出 CloneNotSupportedException 而在 JDK6 中不抛出? public class DemoThread extends Thread im
在 SuperClass 中,当我覆盖 clone() 方法时就没有问题了。 public class SuperClass implements Serializable, Cloneable {
作为作业的一部分,我们被要求使用clone 方法实现一个抽象类。给出函数的框架: /** * @effects Creates and returns a copy of this. */ pub
clone() 的调用者如果遇到 CloneNotSupportedException 怎么可能恢复?为什么它是已检查的异常? 最佳答案 Why is it a checked Exception?
我现在正在做一个关于继承和深度克隆的交接。 这次交接是关于使用继承和深度克隆的思想重写给我们的代码,使用将形状绘制到 Canvas 上的程序。 现在我已经为父类(super class)point和子
public class MyClass { public static void method() { try { // there is no compile time err
我最近开始 Java 编程,根据 Java SE API 文档,实现了 Cloneable 接口(interface)以指示允许对该类进行克隆操作。如果不是,则抛出 CloneNotSupported
我正在尝试使用 mockito 访问受 try catch 保护的复制方法的一部分,同时尝试在我的 junit 测试中获得 100% 的覆盖率。包含我要访问的方法的类实现了可克隆,因此很难抛出 Cla
我是一名优秀的程序员,十分优秀!