在Java中,为什么从构造函数中调用方法被认为是不好的做法?如果这个方法计算量很大,那会特别糟糕吗?
答案 0 :(得分:6)
构造函数应该只调用private,static或final方法。这有助于摆脱Overriding可能出现的问题。
此外,构造函数不应该启动线程。在构造函数(或静态初始化程序)中启动线程有两个问题:
在构造函数(或静态初始化程序)中创建线程对象没有任何问题 - 只是不要在那里启动它。
答案 1 :(得分:4)
在构造函数中调用实例方法很危险,因为对象尚未完全初始化(这主要适用于可被覆盖的方法)。此外,已知构造函数中的复杂处理会对测试能力产生负面影响。
在做的时候要小心,不好的做法是使用覆盖方法。