В Scala (2.12) при написании черты я добавил реализацию по умолчанию, которая может быть переопределена некоторыми подклассами. Поскольку во всей моей реализации state
требуется почти везде, он неявный , так что мне не нужно передавать его каждый раз, когда это требуется.
Учитывая следующий фрагмент кода, компилятор жалуется, что неявный параметр state
из SomeTrait.defaultMethod
остается неиспользованным и выдает ошибку. Есть ли возможность подавить ошибки такого рода в этой конкретной области? Я определенно хочу сохранить неиспользуемые ошибки глобально.
trait SomeTrait {
def defaultMethod(implicit state: State) : Unit = {
// default implemenation does nothing
}
}
class Subclass extends SomeTrait{
override def deafultMethod(implicit state: State) : Unit = {
state.addInformation()
}
}
Кроме того, я хотел бы сохранить неявное состояние. Теоретически, можно добавить в метод фальшивое использование, но это не чистое решение.