说,我有一个通用的命令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