我創建了一個斯卡拉的活動特點,它看起來像下面的缺位:斯卡拉泛型:表示類型
trait Event[A]
{
def addListener(f: A=>Unit): Unit
def rmvListener(f: A=>Unit): Unit
}
它可以作爲預期爲各類A
,但有一個例外:Event[Unit]
要求回調根據需要鍵入(Unit)=>Unit
而不是()=>Unit
。同樣,Event[Nothing]
要求回調的類型爲(Nothing)=>Unit
。我試過擴展Event[]
但它不能編譯。我希望避免寫event.addListener((Unit)=>{ /*logic*/ }
的需要。
可能最簡單的解決方案是編寫第二個特徵Action
與f:()=>Unit
,但我希望避免重複事件系統邏輯。
有沒有人知道在Scala中使用泛型時表示缺少類型的好方法?