我有一个接口Handler<T>
与一个方法handle(item: T)
和一些实现它的类:
class FooHandler : Handler<String>
class BarHandler : Handler<Int>
class BazHandler : Handler<Unit>
在最后一个,handle
实现看起来像这样:
override fun handle(nothing: Unit) {
//whatever
}
我发现它很难看。当kotlin类型为Unit
时,允许避免参数声明会很棒,例如:
override fun handle() {
//whatever
}
但到目前为止它还没有得到支持。 Kotlin有什么办法解决这种情况吗?
假设您的界面如下所示:
interface Handler<T> {
fun handle(item: T)
}
你可以将它包装在另一个界面中,如下所示:
interface TypelessHandler : Handler<Unit> {
fun handle()
override fun handle(item: Unit) {
handle()
}
}
然后像这样使用它:
class FooHandler: TypelessHandler {
override fun handle() {
//whatever
}
}