1

为了使用 MethodHandle,我需要表示一个无返回类型:void。在java中它很简单void.class(是的,它有效),在scala中你可以int.class通过使用

scala> classOf[Int]
res1: Class[Int] = int

,但通过使用classOf[Void],你得到

scala> val t = classOf[Void]
t: Class[Void] = class java.lang.Void

scala> t.isPrimitive
res4: Boolean = false

这显然不是void.class

4

4 回答 4

4

请参阅 Andrew Jones 关于 Scala 中的返回类型的回答。如果您仍然需要它:

scala> val c = java.lang.Void.TYPE
c: Class[Void] = void

scala> c.isPrimitive
res0: Boolean = true
于 2013-11-11T01:47:19.637 回答
4
scala> classOf[Unit]
res0: Class[Unit] = void
于 2013-11-11T02:57:58.217 回答
1

代替

classOf[Void]

, 利用:

Void.TYPE

REPL 输出:

scala> classOf[Void]
res14: Class[Void] = class java.lang.Void

scala> Void.TYPE
res15: Class[Void] = void
于 2013-11-11T01:49:38.797 回答
0

Scala 中没有 void 类型。所有函数都返回一些值。如果该值未明确定义,则为 type Unit

此外,void被Java视为伪类型。因此,void 不可能成为返回对象的类型。

于 2013-11-11T01:32:25.823 回答