Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在scala中指定Foo.class?_Java_Scala - Fatal编程技术网

Java 如何在scala中指定Foo.class?

Java 如何在scala中指定Foo.class?,java,scala,Java,Scala,我使用的java API如下所示: import com.google.code.morphia.Morphia; ..... val morphia = new Morphia(); morphia.map(Hotel.class).map(Address.class); 但它会给scala带来一个编译器错误。 上面的scala中的正确代码是什么?请注意,.map被定义为的一部分 morphia API,不要与scala地图混淆。编辑:在看过API之后;你真正想要的是

我使用的java API如下所示:

import com.google.code.morphia.Morphia;

.....

     val morphia = new Morphia();
     morphia.map(Hotel.class).map(Address.class);
但它会给scala带来一个编译器错误。 上面的scala中的正确代码是什么?请注意,.map被定义为的一部分
morphia API,不要与scala地图混淆。

编辑:在看过API之后;你真正想要的是:

classOf[T]
例如

在Scala的打字系统上


回答错误,但可能有用,如果有人被以下问题标题误导:

class
是Scala中的保留字。如果要将其用作字段或方法名,则需要使用反勾号将其括起来:

Hotel.`class`

你应该使用[Hotel]的
classOf

假设你的问题是
.class
部分,那么
Hotel.class
的Scala等价物将是[Hotel]的
classOf,同样对于
Address


希望这能解决您的问题,尽管在没有看到完整的编译器输出的情况下很难判断。

您得到了什么编译错误?这修复了编译器错误。希望在完成代码时不会出现运行时错误。不幸的是scala选择了这种格式,它需要的键入量几乎是标准Java的两倍。我认为scala需要更少的输入;在实践中,您会发现,
classOf[T]
构造几乎是不需要的。Scala中处理类型相关逻辑的常用技术是模式匹配。@amc Scala没有静态方法,因为静态方法在面向对象环境中没有意义(它们的
this
?)是什么。因此,
ClassName.class
没有意义——它不能是静态方法,
ClassName
不是对象。另一方面,
classOf[T]
是对象
Predef
上的一种方法,因此它非常有意义。
Hotel.`class`