编译器抱怨A类中定义的方法是递归方法,需要result.type但它不是递归的,因为我调用了不同的方法,它是一个编译器错误?编译器错误地解释为递归调用
高清我(S:字符串){
}
类A { 高清我=我的( “SSS”)}
编译器抱怨A类中定义的方法是递归方法,需要result.type但它不是递归的,因为我调用了不同的方法,它是一个编译器错误?编译器错误地解释为递归调用
高清我(S:字符串){
}
类A { 高清我=我的( “SSS”)}
由于您不能在类/特质/对象,我猜A
是一个内部类。如果是这样,你可以按如下做到这一点:
class Foo { outer =>
def my(s:String) {
}
class A { def my = outer.my("sss") }
}
的符号outer =>
称为自类型的注释,并以这种形式只是用来创造的class Foo
的this
未通过this
阴影的别名的嵌套类型。
编辑:
如果外部实体为object
,你可以通过它的名字引用它。
EDIT2:
如果你重载的方法是不同的错误。如果从其中一个替代方法中调用重载方法,则需要一个结果类型。
def my(s: String) = s
def my: String = my("foo")
// Exiting paste mode, now interpreting.
my: (s: String)String <and> => String
my: (s: String)String <and> => String
scala> my
res0: String = foo
个人而言,我只是添加一个显式的结果类型,然后继续前进。 –