English 中文(简体)
如何在运行时在 java 支持的克隆中知道对象?
原标题:How to know in object in java support clone in run time?

如何知道在 java 中对象是否支持克隆? 还是它复制了 C 托盘? 运行时

please provide an example , thank you

最佳回答

检查是否支持克隆检查

if(myObject instanceof Cloneable) {

}

以上将告知您对象是否执行可克隆且默认克隆是否被支持 。

但是,有些情况下,类不支持克隆方法,但是它们为您提供了一些API, 这将创建实例的副本, 对于这些方法, 您必须查看 API 文档或源代码 。

更新:为什么检查实例不能保证一个成功的克隆:

if(myObject instanceof Cloneable) { 
    Object obj = myObject.clone(); 
}

1 & gt; 考虑以下代码片断

public class IImplementCloneableButThrowException implements Cloneable{

    //Javadoc has a separate section for Exception, implementation like 
    //this and should clearly specify the condition in which 
    //CloneNotSupportedException will be thrown. 
    public Object clone() throws CloneNotSupportedException {
        //I implement but still wont clone, may be in future will allow myself to be cloned
        throw new CloneNotSupportedException("Sorry I cannot be cloned!");
    }
}

2- & gt; 考虑下面的第二个案例

public class IImplementCloneableButCloneIsHidden implements Cloneable{
    //Ouch either no clone method or one which is Object class but that
    //has protected access modifier, which means I cannot call unless 
    //I extend it, too bad
}

因此,虽然 Insenteo of check 将会通过 corrclut, 要么 clone 不能被调用, 要么 clone 将会排除例外 。

问题回答

所有支持 clone 的物体都应同时执行Cloneable 。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签