說,我有一個通用的命令trait與一個執行方法,接受一個輸入並返回一個輸出。像如何使以下代碼類型安全?
trait Input;
trait Output;
trait Command[I <: Input, O <: Output] {
def execute(input: I): O;
}
然後東西,我要創造各種命令,像
class SampleInput extends Input
class SampleOutput extends Output
class SampleCommand extends Command[SampleInput, SampleOutput] {
def execute(input:SampleInput):SampleOutput = new SampleOutput()
}
的問題,這是我可以創建一個SampleAInput
和SampleBOutput
,編譯器將接受高興地命令。我該如何執行,以便編譯器因類型不匹配錯誤而失敗?
不知何故,我需要將Input
和Output
組合在一個類型下,並通過該類型創建一個 命令。我怎麼做?
優秀!這正是我所期待的。謝謝IttayD。 – sanjib 2010-12-20 06:17:04