我想有一个方法,实现2个接口的参数,一个例子可以看到以下:
def autoClose[T <: AutoCloseable, A](closeable: T)(cb: T => A): A = {
try {
cb(closeable)
} finally {
closeable.close()
}
}
def autoFlush[T <: Flushable, A](flushable: T)(cb: T => A): A = {
try {
cb(flushable)
} finally {
flushable.flush()
}
}
有一个这样的方法是合乎逻辑的:
def autoFlushClose[T <: Flushable <: AutoCloseable, A](value: T)(cb: T => A): A = {
autoClose(value) { value =>
autoFlush(value)(cb)
}
}
如何定义T
类型?
1条答案
按热度按时间svmlkihl1#
使用compound types:
或者Scala 3版本: