属性是对象,通常不new,写getters和setters即可,那么什么情况下必须new呢?

瓦蓝色的天空 2017-08-25 01:23:54
public class Person {
private Man man = new Man();
public void setMan(Man man) {
this.man = man;
}
public Man getMan() {
return man;
}
}


public class Person {
private Man man = null;
public void setMan(Man man) {
this.man = man;
}
public Man getMan() {
if(this.man = null) {
this.man = new Man();
}
return man;
}
}
...全文
217 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
瓦蓝色的天空 2017-08-25
  • 打赏
  • 举报
回复
多谢,可以更详细一点吗,我在使用jxls读取Excel的时候,Department的属性Chief必须要new,不然映射department.chief.name的时候就会报错,这个和创建时机有关联吗?
soton_dolphin 2017-08-25
  • 打赏
  • 举报
回复
如果这个属性不会被外部修改,完全是类自己用的,就可以在声明的时候创建。 如果这个属性不会直接被外部设置,只是用去其他API接口的时候,可以在声明的时候创建。 比如说ArrayList, 他私有了一个array, 如果用默认的构造函数,就需要在内部创建这个array

62,620

社区成员

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

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