没有实例的Scala类值

没有实例的Scala类值,scala,class,Scala,Class,为了实现与Java库的互操作性,我需要获得Java.lang.Class[T]的一个实例。假设我有以下案例类定义: case class Foo(name: String, colour: String, amount: Int) 给定一个valbar:Foo的实例,我可以通过调用bar.getClass来获取该实例的类 但是,我还没有Foo的实例:这就是为什么我需要Class[t]的实例。是否可以在不创建Foo实例的情况下获取Class[T]的实例?在Scala中使用预定义函数获取类值有多种

为了实现与Java库的互操作性,我需要获得
Java.lang.Class[T]
的一个实例。假设我有以下
案例类
定义:

case class Foo(name: String, colour: String, amount: Int)
给定一个
valbar:Foo的实例,我可以通过调用
bar.getClass
来获取该实例的类


但是,我还没有
Foo
的实例:这就是为什么我需要
Class[t]
的实例。是否可以在不创建
Foo
实例的情况下获取
Class[T]
的实例?

在Scala中使用预定义函数获取类值有多种方法

在您的情况下(如@Kolmar所述),
classOf[Foo]
可用于获取未实例化对象的类。请注意,此操作的输出可能有点混乱(来自工作表):


由于输出语法有点奇怪,后一种方法很容易混淆。

使用预定义函数在Scala中获取类值有多种方法

在您的情况下(如@Kolmar所述),
classOf[Foo]
可用于获取未实例化对象的类。请注意,此操作的输出可能有点混乱(来自工作表):


鉴于输出语法有点奇怪,后一种可能很容易混淆。

D'oh!我应该知道。。。。谢谢哦!我应该知道。。。。谢谢
classOf[Foo] = class A$A12$A$A12$Foo
classOf[String]  // class java.lang.String
classOf[List[String]]  // class scala.collection.immutable.List
classOf[Array[String]]  // class [Ljava.lang.String;