从外部.jar运行代码时java.lang.NoSuchMethodError

问题描述 投票:-3回答:1

我有一段代码在运行时抛出java.lang.NoSuchMethodError我无法解决:

 private def saveActivationEvent(event: ActivationEvent) = activationEventService.createIfFirst(event)

实现:

case class ActivationEvent extends Event 

class ActivationEventService extends AbstractEventService[ActivationEvent]

abstract class AbstractExalateEventService[E <: Event] {
 def createIfFirst(event: E)(implicit reader: BSONDocumentReader[E], writer: BSONDocumentWriter[E]): Future[Option[BSONObjectID]] = ...
}

我认为这是因为类型擦除而发生的......有人能帮我理解这个问题吗?

scala nosuchmethoderror
1个回答
2
投票

正如我在上面的评论中提到的,每当你看到NoSuchMethodError时,你应该检查的第一件事是你的编译和运行时依赖版本匹配。对于它的价值,我想不出类型擦除可能与NoSuchMethodError有任何关系的方式 - 你可能会看到一个ClassCastException如果有人因为擦除而匹配的错误类型测试,但即使在这种情况下,问题也是如此真的是擦除,事实上有人试图解决它(忽略了编译器的警告)。

© www.soinside.com 2019 - 2024. All rights reserved.