Class Scala导入类错误
Scala导入有问题。我有两个类的导入问题。第一个:Class Scala导入类错误,class,scala,import,Class,Scala,Import,Scala导入有问题。我有两个类的导入问题。第一个: package org.world import org.gui.tokens.Token object WorldObject { } abstract class WorldObject[A <: WorldObject[_]](var xPos: Float, var yPos: Float) { def x = xPos def y = yPos def token: Token
package org.world
import org.gui.tokens.Token
object WorldObject {
}
abstract class WorldObject[A <: WorldObject[_]](var xPos: Float, var yPos: Float) {
def x = xPos
def y = yPos
def token: Token
^^^^^
def move(dx: Float, dy: Float) {// : A = new A(x + dx, y + dy)
xPos += dx // = x + dx
yPos += dy
}
}
问题是def-token:token
的返回类型以红色下划线,并显示错误
找不到:类型标记
上课地点都可以。其他类没有类似的问题。我不记得在Java中出现过这种情况,autoimport总是工作得很好。这里它只在
WorldObject
文件中反复添加import org.gui.tokens.Token
语句。。。为什么呢?我能做些什么呢?令牌
是一个对象,所以说def-Token:Token
对编译器来说就像说def-Token:5
或def-Token:“Hello”
一样有意义
如果要返回
标记
对象,您的意思是def token=token
;或者你的意思是类标记{};对象令牌扩展了令牌文件中的令牌{}
,因此确实有一个名为Token
的类,或者您的意思是def-Token:Token.type
,这意味着该方法必须返回对象令牌
类型的内容。(但是没有太多的意义,因为对象标记是唯一具有类型标记的东西。类型)标记是一个对象,所以说def-Token:Token
对编译器来说就像说def-Token:5
或def-Token:“Hello”
一样有意义
如果要返回标记
对象,您的意思是def token=token
;或者你的意思是类标记{};对象令牌扩展了令牌文件中的令牌{}
,因此确实有一个名为Token
的类,或者您的意思是def-Token:Token.type
,这意味着该方法必须返回对象令牌
类型的内容。(但是没有太多的意义,因为对象标记
是唯一具有类型标记的东西。类型)首先,“红色下划线”表示您正在询问Scala的特定IDE(Eclipse,IDEA?)
objecttoken
是一个单例对象,没有可以实例化的通用类型Token
!只有一个对象,因此def-token:token
错误地表示可能存在不同的标记。您可以通过两种方式纠正此问题。首先,使用单例类型的标记
:
def token: Token.type
或者,由于只有一种方法可以返回此类对象,因此您可以提供以下实现:
def token: Token.type = Token
或短
def token = Token
然而,这种方法的有用性值得怀疑。任何寻找对象标记的人都可以直接与它对话,而不是间接使用方法。首先,“红色下划线”表示您正在询问Scala的特定IDE(Eclipse,IDEA?)
objecttoken
是一个单例对象,没有可以实例化的通用类型Token
!只有一个对象,因此def-token:token
错误地表示可能存在不同的标记。您可以通过两种方式纠正此问题。首先,使用单例类型的标记
:
def token: Token.type
或者,由于只有一种方法可以返回此类对象,因此您可以提供以下实现:
def token: Token.type = Token
或短
def token = Token
然而,这种方法的有用性值得怀疑。任何寻找对象标记的人都可以直接与它对话,而不是间接的方法。您的问题不在于包,而在于对象
您将令牌标记为对象而不是类。这类似于将Java类中的每个方法标记为static,但在Scala中,没有声明的机会
package org.gui.tokens
class Token {
}
请记住,因为对象只有一个实例并且不能扩展,所以它们不能用作标识符。您的问题不在于包,而在于对象
您将令牌标记为对象而不是类。这类似于将Java类中的每个方法标记为static,但在Scala中,没有声明的机会
package org.gui.tokens
class Token {
}
请记住,因为对象只有一个实例并且不能扩展,所以它们不能用作标识符。是的,您是对的,这是Eclipse。。。多亏了你的回答,我明白我的错误是我没有创建类标记。。。感谢您的回答,我明白我的错误是我没有创建类令牌
。现在,当我理解这个问题时,我相信Scala IDE中的自动导入必须对此做出某种反应,而不仅仅是默默地导入对象而不是类。现在当我理解这个问题时,我相信Scala IDE中的自动导入必须以某种方式对此做出反应,而不仅仅是默默地导入对象而不是类。