我想摆脱此示例代码的类型擦除警告:
public function uploadAction(
Request $request
) {
$authorImage = $this->authorImageFactory->create();
$authorImage->setAuthor($author);
$form = $this->formFactory->create('AppBundle\Form\Type\AuthorImageType', $authorImage);
它编译并正常工作,但有警告:
警告:(31,13)类型模式中的非变量类型参数Int Seq [Int](Seq [Int]的基础)是未选中的,因为它是 通过擦除消除 情况b:Seq [Int] => b.map(c => println(2 * c)) ^
在这种情况下,你有什么简单的解决办法来避免擦除吗?
到目前为止我尝试了什么(符合this):
val a: Seq[Any] = Seq(1)
a match {
case b: Seq[Int] => b.map(c => println(2 * c) )
case _ => println("Not matched")
}
但它不会编译,因为c现在是Any类型。
我相信这个问题有几个解决方案。我会接受最简单的一个。
答案 0 :(得分:0)
此
case b: Seq[Int @unchecked] => b.map(c => println(2 * c))
将摆脱警告。但它不会解决潜在的擦除问题。 Seq("1")
将符合此案例。
答案 1 :(得分:0)
我有同样的问题,我最终做了这样的事情(找不到更漂亮的东西):
x
答案 2 :(得分:0)
我不确定这是一个最简单的解决方案,但我认为最好将类型与if payer_contract(params[:payer_type])
= render 'bpci_form'
else
= render 'global_form'
s匹配
TypeTag