gpt4 book ai didi

java - 无法获取嵌套对象层次结构中类型的简单名称

转载 作者:行者123 更新时间:2023-11-29 05:00:40 26 4
gpt4 key购买 nike

我有以下代码:

object Repro {
def main(args: Array[String]): Unit = {
println(classOf[Foo.Bar].getSimpleName)
}

object Foo {
trait Bar
}
}

当我运行它时,我得到:

Exception in thread "main" java.lang.InternalError: Malformed class name
at java.lang.Class.getSimpleName(Class.java:1322)
at Tests$.main(Tests.scala:3)
at Tests.main(Tests.scala)

这是预期的行为吗?如果是这样,为什么?我在这里缺少什么?

我正在使用 JDK 1.8.0_25 和 Scala 2.11.7。

最佳答案

您遇到了一个非常古老的 Scala 错误:SI-2034 .

您可以使用 Scala 反射而不是普通的 Java 反射,并实现相同的目的:

import scala.reflect.runtime.universe._

scala> val t = typeOf[A.B.type]
t: reflect.runtime.universe.Type = A.B.type

scala> t.termSymbol.name
res11: reflect.runtime.universe.Symbol#NameType = B

关于java - 无法获取嵌套对象层次结构中类型的简单名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32207648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com