我可以在Java中的构造函数中调用方法吗?
2022-08-31 16:36:29
我有一种情况,当类实例化时,我只想读取一次配置文件。
假设我有一个名为 的方法,它读取配置并将其放入对象中。当程序需要使用配置值时,它会读取带有定义键的对象。我想知道构造函数只在生命周期中调用一次。我可以把我的方法放入构造函数中,这样可以给我一次调用带来好处,还是有另一种机制来做到这一点?readConfig()
Map
readConfig()
我有一种情况,当类实例化时,我只想读取一次配置文件。
假设我有一个名为 的方法,它读取配置并将其放入对象中。当程序需要使用配置值时,它会读取带有定义键的对象。我想知道构造函数只在生命周期中调用一次。我可以把我的方法放入构造函数中,这样可以给我一次调用带来好处,还是有另一种机制来做到这一点?readConfig()
Map
readConfig()
你可以:这就是构造函数的用途。此外,您还要明确指出,该对象永远不会在未知状态下构造(未加载配置)。
你不应该:在构造函数中调用实例方法是危险的,因为对象尚未完全初始化(这主要适用于可以重写的方法)。此外,构造函数中的复杂处理已知会对可测试性产生负面影响。
更好的设计将是
public static YourObject getMyObject(File configFile){
//process and create an object configure it and return it
}