我想创建一个名为save
的方法,但尚未准备好实施它。但是,我不希望它在评估期间抛出异常。所以我试着让它返回Nothing
作为结果。
def save[A <: AuthInfo](profile: CommonSocialProfile): Future[UserProfile] = {
// To be done
new Nothing()
}
但这不会起作用,编译器说:
类没有什么是抽象的;无法实例化
我还尝试???
作为占位符,但这会引发NotImplementedError
,这也不适合我的需求..
def save[A <: AuthInfo](profile: CommonSocialProfile): Future[UserProfile] = ???
有没有人有更简单的方法来伪造Scala中的方法?
答案 0 :(得分:3)
由于您需要返回Future[UserProfile]
类型的内容,因此您只需要编写一个假的UserProfile
并将其返回。
所以,如果UserProfile
定义如下:
class UserProfile(id: Int, name: String)
然后执行以下操作:
def save[A <: AuthInfo](profile: CommonSocialProfile): Future[UserProfile] = {
// To be done
Future(new UserProfile(-1, ""))
}
或者,您可能需要一个特殊的UserProfile
单例用于此目的:
object FakeUserProfile extends UserProfile(-1, "")
def save[A <: AuthInfo](profile: CommonSocialProfile): Future[UserProfile] = {
// To be done
Future(FakeUserProfile)
}