2016-08-15 87 views
3

暧昧参考超载定义我越来越斯卡拉以下错误:如何解决阶

ambiguous reference to overloaded definition, 
both method register in trait Configurable of type (x$1: Any, x$2: <repeated...>[Class[_]])javax.ws.rs.client.Client 
and method register in trait Configurable of type (x$1: Any) javax.ws.rs.client.Client 
match argument types (Object) 

[ERROR]  client.register(ClientFilter.getFilter().asInstanceOf[Object]) 

不应该asInstance [对象]通知编译器要使用的球衣客户寄存器的版本?下面的代码:

val client: Client = 
     ClientBuilder.newBuilder() 
     .build(); 
client.register(ClientFilter.getFilter().asInstanceOf[Object]) 

ClientFilter.getFilter()是ClientRequestFilter

+1

您正在访问https://issues.scala-lang.org/browse/SI-2991 –

+3

其中一种解决方法可能也是使用无可变参数的方法,例如'public C register(Object component,int priority );'从'javax.ws.rs.core.Configurable'。像这样'.register(new SomeFilter,1)' – rpozarickij

+0

@rpozarickij更好。 –

回答

3

实例时,您将需要一个Java类做派遣你,由于this issue赞成我的公关没有得到解决,其中增加了-Yno-java-tupling来做你的期望。希望变通办法是暂时的,并且在重载解决方案在自动取消之前就不需要了,如在对票证的评论中所述。