【发布时间】:2015-03-05 16:17:57
【问题描述】:
我有以下代码行:
case set: Set[Any] => setFormat[Any].write(set)
但是,编译器会发出警告:
非可变类型参数 Any 类型模式 scala.collection.Set[Any] 未被选中,因为它被 擦除 [警告]
很公平。
所以我将我的行改为:
case set: Set[_] => setFormat[Any].write(set)
现在我得到一个错误:
发现[错误]:scala.collection.Set[_]
[错误] 必需: scala.collection.Set[任何]
第一季度。这两者有什么区别?
然后我将代码更改为以下内容:
case set: Set[_] => setFormat[Any].write(set.map(s => s))
现在它很高兴没有错误或警告。
第二季度。为什么会这样??
【问题讨论】:
-
你能给出setFormat的类型/签名并写吗?
-
只是好奇,删除明确的
[Any]和地图,如我在“备注”下的回答中建议的那样,是否适用于您的情况?
标签: scala