是否可以将自定义Java类导入Scala?

时间:2014-10-27 14:27:19

标签: java scala

我试图学习Scala。无论我到目前为止看到什么,我都看到它提到Scala与Java非常兼容。 "您可以从另一个方法中调用任何一种语言的方法"。但我无法找到一个合适的自定义Java类示例,该类被导入到Scala中并被使用。所以我开始怀疑这是否可能?你能告诉这个新手吗?

使用记事本,而不是编辑器(在使用Eclipse时遇到了很多问题)。

我在Java中有一个Employee类:

package Emp;
class Employee {
    String name;
}

我正在尝试将此导入我的scala类

import Emp._

object Emp extends Employee{
     .......}  

但这只是不编译。不知道是否遗漏了概念或语法方面的内容;请帮忙。

1 个答案:

答案 0 :(得分:3)

是的,有可能。但是,您的Employee课程不是public。添加public修饰符,它应该可以正常工作。

您还应该检查您的类路径是否正确。确保一切正确的最佳方法是使用像SBT这样的构建工具。如果你使用SBT并遵循其传统的目录布局(src/main/scala中的Scala源代码,src/main/java中的Java源代码),那么Scala类将能够毫不费力地看到它们的Java对应物,反之亦然。

但是,根据您提供的少量源代码,您还可能存在名称冲突。您有一个包Emp和一个名为Emp的对象;包和类/对象在Scala和Java中共享命名空间,因此您不能同时拥有包和完全不相关的同名对象。我建议将软件包重命名为更惯用的东西。

请参阅this要点。文件名被破坏了,因为Github不允许文件名中的斜杠(所以我用破折号替换它们),但我相信你会得到主要的想法。