Java 里有时候不在 constructor 里对成员变量赋值,而是另写一个 initialize()方法,为啥?

2017-05-26 19:37:51 +08:00
 guyeuro

一般什么情况用 initialize()方法?

2760 次点击
所在节点    Java
9 条回复
guyeuro
2017-05-26 22:50:16 +08:00
顶顶顶
求讨论
billlee
2017-05-26 23:44:20 +08:00
大概写这程序的人以前从 MFC 转行过来的
shoaly
2017-05-27 00:01:23 +08:00
constructor 只能在 new 的时候才出发
init() 方法确可以反复调用, 用于想要反复 init 的场合, 一言不合就可以把一个脏对象重新洗白成纯妹子.
q397064399
2017-05-27 06:12:28 +08:00
构造跟初始化 本来就是两个概念,你可以初始化很多次,但是一对象只能构造一次
xbaofeng
2017-05-27 07:42:58 +08:00
有时候逻辑复杂,或者有异常抛出
syhilyhw
2017-05-27 09:44:58 +08:00
可以看下 java 的构建器
mononite
2017-05-27 11:24:06 +08:00
initialize 方法可以被 overwrite,构造函数不行。
searene
2017-05-27 12:48:21 +08:00
我一般是在 spring 里面单独写 initialize,因为我需要一些程序运行过程中动态生成的各种参数。
chenuu
2017-05-27 13:41:31 +08:00
有时候是为了用单例吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/364079

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX