在定义lagom服务实现时,需要使用scala编译时错误

在定义lagom服务实现时,需要使用scala编译时错误,scala,lagom,Scala,Lagom,我在Java中使用lagom已经有一段时间了,没有任何问题,但我很难让它与scala一起工作(从我开始) 对scala来说相当陌生,我可能正在做一些愚蠢的事情) 我已经定义了一个(非常)最小的lagom服务(如下),它不应该导致 任何问题,但我得到了scala编译时错误“缺少实现中下划线参数的参数类型” 代码,我不明白为什么。。。。我认为scala是隐式类型 我应该做必要的事,但显然我错了 有人能帮忙吗?我可能在做一些愚蠢的事情,但就我的一生而言,我看不到什么 问候,, 瑞克 这是我的服务接口(

我在Java中使用lagom已经有一段时间了,没有任何问题,但我很难让它与scala一起工作(从我开始) 对scala来说相当陌生,我可能正在做一些愚蠢的事情)

我已经定义了一个(非常)最小的lagom服务(如下),它不应该导致 任何问题,但我得到了scala编译时错误“缺少实现中下划线参数的参数类型” 代码,我不明白为什么。。。。我认为scala是隐式类型 我应该做必要的事,但显然我错了

有人能帮忙吗?我可能在做一些愚蠢的事情,但就我的一生而言,我看不到什么

问候,, 瑞克

这是我的服务接口(API)定义(在文件MyService API/MyTestService.scala中):

这是导致编译器错误的实现定义(在文件MyService impl/mytestserviceinpl.scala中):

class MyTestServiceImpl extends MyTestService {
    // this is where the error happens....
    override def myTest2() = ServiceCall { _ => Future.successful("Hi MyTest2 user") }  
                                           ^
                                           ^ 
                                         (here)
}

如果粘贴准确的错误输出就好了,但问题是您将
myTest2
定义为一个采用
String
的方法,即
def myTest2(cmd:String)
,但随后您将其实现为一个不带参数的方法,即
覆盖def myTest2()
。将其更改为
覆盖def myTest2(cmd:String)
,这将解决您的问题


出现特定错误的原因是,由于您没有实际重写定义的
myTest2
方法,Scala编译器无法推断您要返回的
ServiceCall
类型,因此无法推断要传递给
ServiceCall

的lambda中的参数类型如果粘贴准确的错误输出就好了,但问题是您将
myTest2
定义为一个采用
String
的方法,即
def myTest2(cmd:String)
,但是您已经将其实现为一个不带参数的方法,即
覆盖def myTest2()
。将其更改为
覆盖def myTest2(cmd:String)
,这将解决您的问题


出现特定错误的原因是,由于您没有实际重写定义的
myTest2
方法,Scala编译器无法推断您要返回的
ServiceCall
类型,因此,无法推断要传递给
ServiceCall

的lambda中的参数类型。如果定义缺少的参数类型,是否会导致问题?如果定义缺少的参数类型,是否会导致问题?ta James-这确实是问题。ta James-这确实是问题。
class MyTestServiceImpl extends MyTestService {
    // this is where the error happens....
    override def myTest2() = ServiceCall { _ => Future.successful("Hi MyTest2 user") }  
                                           ^
                                           ^ 
                                         (here)
}