我在eclipse中有一个多项目Scala工作区。我认为我对Scala导入软件包的方式缺乏了解,但是我花了更多的时间来考虑寻找解决方案后,我无法想象这一点。我在一个简单的2项目设置中重新创建了这个问题。
项目1:com.foo.mathematics包含一个简单的Vector类
包含一个文件:
package com.foo.mathematics
class Vector2D(x : Double, y : Double) {
def length = math.sqrt(x*x + y*y)
}
项目2:com.foo.analysis
package com.foo.analysis
import com.foo.mathematics.Vector2D
class Frame(xAxis : Vector2D, yAxis : Vector2D) {
}
Eclipse在导入行中显示错误,我得到的错误消息是:对象数学不是包com.foo的成员。
在大纲视图中,我的import语句说明了这一点:
com.foo.analysis.<error: <none>>.Vector2D
我尝试将导入更改为:
import mathematics.Vector2D
import _root_.com.foo.mathematics.Vector2D
两个人都没有......
我错过了什么?
答案 0 :(得分:6)
import com.foo.mathmatics.Vector2D
和import _root_.com.foo.mathmatics.Vector2D
都应该没问题。很可能你没有将第一个项目添加到第二个项目的构建路径(请参阅上下文菜单中的Build Path
&gt; Configure Build Path
),或者需要清理第二个项目({{1} }&gt; Project
)在第一个项目中进行更改后。
(另外,Build Clean
看起来像是mathmatics
的拼写错误,所以要仔细检查两个地方是否真的有相同的名字。)
相对包导入不会进入它,它们只是意味着你可以这样写:
mathematics