我正在和 scala 的分布式演员一起玩。非常好。
我有一个执行传入函数对象的服务器。例如,客户有
object Tasks {
def foo = {Console.println("I am Foo")};
def bar = {Console.println("I am Bar");}
}
// In client actor...
...
server ! Tasks.foo _
...
服务器可以拾取这些并使用参与者代码执行它们,例如
react {
case task:(()=>Unit) =>
task()
这一切都很好(这确实非常酷),但我scalac
对服务器代码输出的警告消息感到困惑:
warning: non variable type-argument Unit in type pattern is unchecked since it is eliminated by erasure
case task:(()=>Unit) =>
^
如何清除此警告?
(我很不清楚Unit
类型和()=>Unit
零参数函数的类型之间的区别。只是尝试匹配task:Unit
是react
没有警告的,但实际上与传入的任务不匹配。)
在 Debian 上使用 Scala 2.7.5 和 Sun 的 Java6。