嗨,我需要帮助如何用两个构造函数在scala中转换。
public class Configure {
private final Config config;
public Configure(String confFileName) {
config = ConfigFactory.load(confFileName);
}
public Configure() {
config = ConfigFactory.load();
}
public String getString(String name) {
return config.getString(name);
}
}
class Configure(private val config :Config) {
def this() = this(ConfigFactory.load())
def this(confFileName :String) = this(ConfigFactory.load(confFileName))
}
在Scala中,您通常会使用伴侣对象进行此操作:
class Configure private (config: Config) {
def configString(name: String) = config.getString(name)
}
case object Configure {
def apply(confFileName: String ) =
new Configure(ConfigFactory.load(confFileName))
def apply() =
new Configure(ConfigFactory.load())
}
这很好地将班级的行为与创建不同的方式分开。
[我更名为getString
,因为" Getters"通常不从Scala中的get
开始,它们只是要检索的值的名称。]