最初,我在对象内部有一个case类。因此,我可以从另一个类(如extractSales)调用SaleProcessor.extractSales(salesJson)方法。

object SaleProcessor {
 case class Sale(name: String, type: String, description: String) {
 def extractSales(salesJson: JValue): Seq[Sale] = {
    salesJson.extract[Seq[Sale]]
  }}}

然后我读到某处,无需在对象内嵌套case类,并决定删除SaleProcessor对象,仅保留case类。但是之后,我无法像以前那样调用该方法。

据我了解,没有对象,我必须实例化case类。但是由于从JSON提取时会创建Sale对象,因此不确定如何实现此目标吗?

另一个问题是将案例类嵌套到对象中最合适的方法是什么,什么是Scala的最佳实践?

最佳答案

您仍将方法保留在object中,并以相同的方式调用它:

case class Sale(name: String, type: String, description: String)

object SaleProcessor {
  def extractSales(salesJson: JValue): Seq[Sale] = ...
}

// elsewhere
SaleProcessor.extractSales(salesJson)

通常将对象命名为与类相同的名称(即object Sale而不是object SaleProcessor),使其成为伴随对象,但这不是必需的。

关于scala - Scala-如何从另一个类访问案例类方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51945726/

10-12 16:32