Scala “返回”;“对象”;在斯卡拉

Scala “返回”;“对象”;在斯卡拉,scala,object,Scala,Object,我对斯卡拉有点陌生。我在尝试返回对象类型时遇到了麻烦 这是代码 它显示“错误:未找到:类型A” 如果我对类实例做类似的事情,它不会显示任何问题 class A{} object B { def getInstance() : A = { return new A } } 据我所知,对象类型是类的单例实例。我在这里缺少什么?因为对象是一个单例对象,它没有定义类型,而是定义了一个值 如果您想查看Java等价物,请使用scalaobject生成: A$ class // A$.MO

我对斯卡拉有点陌生。我在尝试返回对象类型时遇到了麻烦

这是代码

它显示“错误:未找到:类型A”

如果我对类实例做类似的事情,它不会显示任何问题

class A{}

object B {
  def getInstance() : A = {
    return new A
  }
}

据我所知,对象类型是类的单例实例。我在这里缺少什么?

因为
对象是一个单例对象,它没有定义
类型,而是定义了一个值

如果您想查看Java等价物,请使用scala
object
生成:

A$ class //
A$.MODULE$ // singleton instance definition
但是,
类型
被屏蔽,可以通过
A.type
访问

在Scala中也不需要使用
return
。块中最后一条语句的位置自动解释为
return
value

class A{}

object B {
  def getInstance() : A = new A
}

编译器抱怨找不到类型A,因为在您的情况下A是对象的名称而不是类型,请使用A.type引用类型,如下所示:

object A

object B {
  def getInstance: A.type = A
}

只是想补充一点,通过类型推断,实际上可以省略返回类型,只编写
def getInstance=A
object A

object B {
  def getInstance: A.type = A
}