簡體   English   中英

如何創建類似於java bean的scala類,但具有修改輸入的簡單邏輯

[英]how to create scala class similar to java bean but with simple logic to modify the input

我有以下java bean

public class ReportTest {

    private Integer Impressions;

    public Integer getImpressions() {
        return Impressions;
    }

    public void setImpressions(String impressions) {
        Impressions = Integer.parseInt(impressions.replace(",",""));
    }
}

並嘗試使用scala類使用以下內容創建類似的類,但它抱怨語法錯誤。 看來我無法修改_。 我的目的是將scala用作每個項目的spring bean: https : //github.com/spring-projects/spring-scala

class Report {

  var Impressions:String = _.replace(",","")

}
case class Report(impression: String)  { def getImpression() : Int = Integer.parseInt(impression.replace(",", "")) }

您的Java類很奇怪: impressions器和設置器沒有使用相同的數據類型。 您不可能在一個只有一種類型的Scala var中將它們全部合並在一起。

您可以將Java類轉換為等效的Scala代碼,如下所示:

class ReportTest {
  var _impressions: Int = _

  def impressions: Int = _impressions

  def impressions_=(v: String): Unit =
    _impressions = Integer.parseInt(v.replace(",", ""))
}

但是由於getter和setter的類型不同,它仍然很奇怪。

在我看來,將字符串轉換為Int應該是調用者的責任。 然后,您的班級可以簡單地寫成:

class ReportTest {
  var impressions: Int = _
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM