apply
package level02
object scala05 {
class Logger(var filename:String) {
}
object Logger {
def apply (filename:String):Logger = {
println("apply...")
new Logger(filename)
}
}
def main(args: Array[String]): Unit = {
val log1 = Logger("test.log")
println(log1.filename)
}
}
class Logger(var filename:String) {
def log(massage: String): Unit = {
println(s"log: $massage")
}
}
object Logger {
private var instance: Option[Logger] = None
def apply (filename:String):Logger = {
if (instance.isEmpty){
instance = Some(new Logger(filename))
}
instance.get
}
}
def main(args: Array[String]): Unit = {
val log1 = Logger("test.log")
log1.log("2025.11.03 上午上课")
}
}
将日志信息写入文件中:
class Logger(var filename:String) {
def log(massage: String): Unit = {
val writer = new FileWriter(filename, true)
writer.write(s"$massage \n")
writer.close()
}
}
object Logger {
private var instance: Option[Logger] = None
def apply (filename:String):Logger = {
if (instance.isEmpty){
instance = Some(new Logger(filename))
}
instance.get
}
}
def main(args: Array[String]): Unit = {
val log1 = Logger("test.log")
log1.log("2025.11.03 上午上课")
log1.log("2025.11.05 运动会")
log1.log("2025.11.03 周末")
}
}