关于java中clone()和NullPointerException的问题

nenuzhangjun 2007-12-09 11:40:43
我在一个复数类ComplexNumber中重写了clone()的方法,以便使用一个复数对象的clone()方法是能够产生一个一样的复数对象但是每次都会产生java.lang.CloneNotSupportedException异常和java.lang.NullPointerException异常。希望哪位给指点一个下,不胜感激。
(java.lang.CloneNotSupportedException异常出现在代码第四行java.lang.NullPointerException异常出现在代码最后一行)
代码如下:
1. public Object clone(){
2. try{
3. //克隆一个对象时,应该先调用父类的clone方法
4. ComplexNumber newObject = (ComplexNumber)super.clone();
5. //将现有对象的值赋给新对象
6. newObject.setImaginaryPart(this.imaginaryPart);
7. newObject.setRealPart(this.realPart);
8. return newObject;
9. }catch(CloneNotSupportedException e){
10. //如果没有实现Cloneable接口,抛出异常
11. e.printStackTrace();
12. return null;
13. }
14. }
15. ComplexNumber e = (ComplexNumber)c.clone();
16. System.out.println("c.clone() = " + e.toString());
...全文
287 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
FredWorks 2007-12-09
  • 打赏
  • 举报
回复
你的ComplexNumber继承了那个类?应该是那个类抛出来的CloneNotSupportedException

至于NullPointerException异常,你的12行代码,当克隆失败的时候,返回null,然后在16行调用e.toString(),当然会导致空指针异常啦
nenuzhangjun 2007-12-09
  • 打赏
  • 举报
回复
弄好了
谢谢哥们

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧