-1

我有以下问题;

我有公共方法 clone() 的接口:

public interface Something {
    Something clone();
}

并且

public class SomethingImpl implements Something {

        private Something some;

    public Something clone() {
        return some.clone();
    }
}

当我从某处的代码运行时

...
Something i =  new SomethingImpl();
...
// do something on i
...
someMethod(i);
...

public void someMethod(Something some){
    Something some2 = some.clone(); 
  }

我在 Someting some2 = some.clone;

我编写了很多业务逻辑,但直到现在我才遇到克隆的必要性,尤其是这种方式。

有人能指出我应该往哪个方向走吗?我试图阅读有关该主题的文章,但变得更加困惑。

提前致谢, 英里

4

2 回答 2

1

鉴于你的例子,唯一的方法

public void someMethod(Something some){
    Something some2 = some.clone(); 
}

NullPointerException如果您将 null 传递给 ,则可以抛出is someMethod(Something some)

于 2012-09-13T21:26:25.700 回答
0

方法和字段是两个不同的东西。clone是一个未定义的字段,因此将不存在。clone()是一种方法。你的意思是Someting some2 = some.clone()

编辑我刚刚看到你的实际错误(尽管我上面所说的仍然应该被注意!)。这意味着some必须null- 您是否可能在您省略的代码部分中更改其值?每当您收到NullPointerException.

于 2012-09-13T21:23:23.363 回答