如何在不构造一个`case class`的情况下`getClass`? [重复]

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

这个问题在这里已有答案:

假设你有一个像这样的Scala案例类:

case class A(a: Int, b: Int)

如何获得它的Class表示,你通常用.getClass得到的那个?

什么不起作用:

调用A.getClass不会给你类信息,而是随附的自动生成对象。您可以通过调用:A.getClass.getDeclaredFields.toList来观察它,它会给你这个列表:List(public static A$ A$.MODULE$)而不是ab字段。

调用A(null, null).getClass确实有效,因为我们实例化了一个虚拟对象,但是它更冗长,感觉很脏,并且与“wartremover”之类的编译器连接不一致。

scala reflection case-class
1个回答
2
投票

使用Scala-s内置的classOf[A]。然后,Scala编译器将自动插入正确的类型。

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