xin lỗi nếu đó là một danh hiệu câm, tôi không biết làm thế nào để thể hiện điều này rõ ràngscala - vượt qua tự loại chú thích lớp đối tượng con
nói rằng tôi có một đặc điểm khai thác gỗ:
trait Logging {
def log(s:String)
}
và sau đó một số thực hiện
trait PrintlnLog extends Logging {
def log(s:String) { println(s) }
}
mà tôi sử dụng như thế này
class SomeProcess { this:Logging =>
def doSomeJunk() {
log("starting junk")
...
log("junk finished")
}
}
tôi có thể sử dụng lớp này như
val p = new SomeProcess() with PrintLog
p.doSomeJunk()
bây giờ những gì nếu tôi có điều này
class SubProcess { this:Logging =>
def doSubJunk() {
log("starting sub junk")
...
log("finished sub junk")
}
}
class ComplexProcess { this:Logging =>
def doMoreJunk() {
log("starting more junk")
val s = new SubProcess with // ??? <-- help!
s.doSubJunk()
log("finished more junk")
}
}
trong ComplexProcess tôi muốn tạo một tiến trình con trộn trong đặc điểm khai thác gỗ tương tự mà đã được trộn vào ComplexProcess, nhưng ComplexProcess không biết đó là gì. có cách nào để có được một tham chiếu đến nó?
đây là bản chất những gì tôi đang làm, nhưng nó xấu xí bởi vì tôi có tất cả những đặc điểm này nằm rải rác trong suốt mã của tôi có mục đích duy nhất là để đăng nhập vào bánh. hy vọng có một cách tốt hơn – dvmlls