我有两个烫伤工作,其中一个继承自另一个。像这样的东西
class BaseJob(args : Args) extends Job(args) {
val verbose = args.boolean("verbose")
if(verbose){
// do stuff
}else{
// do other stuff
}
}
class MyJob(args : Args) extends BaseJob(args) {
override val verbose = true
override def formatOutput(p: Pipe): Pipe = {
println(verbose) // outputs false if not run with --verbose
p.project('field1, 'field2, 'field3)
}
}
这个想法是 MyJob 中的一些代码假设我们正在使用详细标志运行,因此我不想将其作为参数,而是要确保始终设置它。然而,简单地覆盖类变量是行不通的,因为它仍然会从命令行参数中获取 'verbose' 的值。有谁知道如何做到这一点?