Mam klasę:
class Config (props: Properties) {
}
i chcę mieć możliwość inicjowania jej na 3 sposoby:
new Config();
new Config(new Properties());
new Config("file://.config/myapp/config.xml");
Jak zmodyfikować klasę Config
by było to możliwe?
Doszedłem jedynie do tego:
class Config private(props: Properties) {
}
object Config {
def apply(): Config = {
apply(new Properties())
}
def apply(path: String): Config = {
val props: Properties = new Properties()
props.load(new FileInputStream(path))
apply(props)
}
def apply(props: Properties): Config = {
return new Config(props)
}
}
ale wtedy nie mogę użyć new
przy tworzeniu Config
.