最初,我在对象内部有一个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中什么是最佳实践?
答案 0 :(得分:5)
您仍将方法保留在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
),使其成为伴随对象,但这不是必需的。