最初,我在对象内部有一个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/