我试图学习Scala。无论我到目前为止看到什么,我都看到它提到Scala与Java非常兼容。 "您可以从另一个方法中调用任何一种语言的方法"。但我无法找到一个合适的自定义Java类示例,该类被导入到Scala中并被使用。所以我开始怀疑这是否可能?你能告诉这个新手吗?
使用记事本,而不是编辑器(在使用Eclipse时遇到了很多问题)。
我在Java中有一个Employee类:
package Emp;
class Employee {
String name;
}
我正在尝试将此导入我的scala类
import Emp._
object Emp extends Employee{
.......}
但这只是不编译。不知道是否遗漏了概念或语法方面的内容;请帮忙。
答案 0 :(得分:3)
是的,有可能。但是,您的Employee
课程不是public
。添加public
修饰符,它应该可以正常工作。
您还应该检查您的类路径是否正确。确保一切正确的最佳方法是使用像SBT这样的构建工具。如果你使用SBT并遵循其传统的目录布局(src/main/scala
中的Scala源代码,src/main/java
中的Java源代码),那么Scala类将能够毫不费力地看到它们的Java对应物,反之亦然。
但是,根据您提供的少量源代码,您还可能存在名称冲突。您有一个包Emp
和一个名为Emp
的对象;包和类/对象在Scala和Java中共享命名空间,因此您不能同时拥有包和完全不相关的同名对象。我建议将软件包重命名为更惯用的东西。
请参阅this要点。文件名被破坏了,因为Github不允许文件名中的斜杠(所以我用破折号替换它们),但我相信你会得到主要的想法。