如何创建一个返回类型,它是所有其他类型的子类型。我想要以下
def foo(): (String => String) = TODO
def bar(): String = TODO
def baz(): Int = TODO
TODO
应该是什么类型的?
答案 0 :(得分:5)
Scala中的“所有其他类型的子类型”为 Nothing
。你可以这样做:
def foo(): (String => String) = TODO
def bar(): String = TODO
def baz(): Int = TODO
def TODO: Nothing = throw new UnsupportedOperationException("not implemented")
修改强>:
好吧,因为OP因为一个奇怪的原因接受了我的回答而且人们继续推销它(出于一个更奇怪的原因)我觉得有责任改变我的答案。所有积分都转到om-nom-nom:
您正在寻找的东西已在Scala Standard Library中实现,其工作方式如下:
def foo(): Int = ???
答案 1 :(得分:0)
Nothing
是每种类型的子类型,没有居住者。它是throw
的类型,所以只需通过抛出
def todo(): Nothing = throw new NotYetException