将值应用于def中的类,并将其发送到另一个类的另一个val

时间:2016-10-10 13:03:32

标签: scala class object call send

希望你做得很好,我刚开始用于创建API的基本scala编程。所以我的模型产品包含以下代码:

import.blablabla._
case class Product(prodId:Int, prodBig:int, prodPcs:Int, price:Int, resProd:Double)

object Product{
  def add(prodId:Int, prodBig:int, prodPcs:Int): Product = {
    Storage.cnts(prodBig, prodPcs)
    var resProd = ?????????
    val price = 4000
    val resJsn = Product(clientId, prodBig, prodPcs, price, resProd)
    Ok(Json.obj("result" -> resJsn)).withHeaders(
              AUTHORIZATION -> endtoken)
      }

和其他类,代码如下:

import.blablabla._
case class Storage (resProd: Double)    

    object Storage {
          def cnts(prodBig:Int, prodPcs:Int) {
            val prod = prodPcs/prodBig
            ??????????
          }
        }

我的问题是: 如何将prod的价值应用于resProd?以及如何将Storage(resProd)值应用于产品类的resProd?

我相信如果你有使用java或scala的经验,这很容易回答。谢谢:))

1 个答案:

答案 0 :(得分:0)

如果您想通过致电Storage.resProd手动更新cnts,我认为这不是一个好主意。代码中的伴随对象object Storage适用于工厂方法。

所以我建议你 1.在cnts中创建新的Stroage:

def cnts(prodBig:Int, prodPcs:Int) {
    val prod = prodPcs/prodBig
    new Storage(prod)
}

2。将cnts移动到类Storage:

case class Storage (var resProd: Double) {
   // some update method comes here
}