Scala akka onComplete似乎不起作用。尝试强制转换时的java.lang.ClassCastException

Scala akka onComplete似乎不起作用。尝试强制转换时的java.lang.ClassCastException,scala,casting,akka,classcastexception,Scala,Casting,Akka,Classcastexception,我现在试着问一个演员,然后在“完成”之后做一些事情 以下是我的例子: (此代码段包含在方法中) 当我尝试将任意对象强制转换为预期类型时 any.asInstanceOf[ExpectedType] 。。。我收到以下例外情况: ERROR akka.actor.OneForOneStrategy - scala.runtime.BoxedUnit cannot be cast to ExpectedType java.lang.ClassCastException: scala.runtim

我现在试着问一个演员,然后在“完成”之后做一些事情

以下是我的例子:

(此代码段包含在方法中)

当我尝试将任意对象强制转换为预期类型时

any.asInstanceOf[ExpectedType]
。。。我收到以下例外情况:

 ERROR akka.actor.OneForOneStrategy - scala.runtime.BoxedUnit cannot be cast to ExpectedType
 java.lang.ClassCastException: scala.runtime.BoxedUnit cannot be cast to ExpectedType
通常我希望any是“any”类型的对象,所以。。。我错过了什么


提前感谢未来。onComplete的返回类型为Unit,基本上不返回任何内容。

未来。onComplete的返回类型为Unit,基本上不返回任何内容。

但是。。。正如您所看到的,在我的代码片段中有一个“return”。这是方法的一部分。当我使用该方法时,它会正确地返回我的对象,但之后当我尝试强制转换时,我再次得到相同的异常。您的返回被忽略。onComplete的定义:
def onComplete[U](func:Try[T]=>U):单位
。因此,您的函数可以返回任何内容(
U
Future
的内部行为是不关心、忽略它并返回
Unit
。您的
any
具有类型
单位
和值
()
。。。正如您所看到的,在我的代码片段中有一个“return”。这是方法的一部分。当我使用该方法时,它会正确地返回我的对象,但之后当我尝试强制转换时,我再次得到相同的异常。您的返回被忽略。onComplete的定义:
def onComplete[U](func:Try[T]=>U):单位
。因此,您的函数可以返回任何内容(
U
Future
的内部行为是不关心、忽略它并返回
Unit
。您的
any
具有类型
Unit
和值
()
。如果将
onComplete
切换为
,然后将
切换为
,则可以实现所需的完成副作用,同时保留从
ask
返回的
未来的原始返回类型。如果将
onComplete
切换为
,则可以实现完成副作用您想要的效果,并保留从
ask
返回的
Future
的原始返回类型。
 ERROR akka.actor.OneForOneStrategy - scala.runtime.BoxedUnit cannot be cast to ExpectedType
 java.lang.ClassCastException: scala.runtime.BoxedUnit cannot be cast to ExpectedType