相关疑难解决方法(0)

案例对象与Scala中的枚举

是否有关于何时使用案例类(或案例对象)与在Scala中扩展Enumeration的最佳实践指南?

他们似乎提供了一些相同的好处.

enumeration scala case-class

225
推荐指数
9
解决办法
11万
查看次数

我一直在使用Scala替换Java枚举模式

在Java中,我做了很多数据集成工作.一直出现的一件事是在多个系统之间映射数据.所以我经常做这样的事情

public enum DataField{
  Field1("xmlField", "dbField", "system1Field";
  private String xml;
  private String db;
  private String sys;

  private DataField(String xml, String db, String sys){
    this.xml = xml;
    this.db = db;
    this.sys = sys;
  }

  public getXml(){
    return this.xml;
  }

  public static DataField valueOfXml(String xml){
    for (DataField d : this.values()){
      if (d.xml.equals(xml)){ return d;}
    }
  }
  bla, bla bla
}
Run Code Online (Sandbox Code Playgroud)

这允许我做的是将字段名称DataField放在我的所有消息中,并能够映射在多个系统中调用该字段的内容.所以在我的XML中,它可能firstname在我的数据库中被调用,first_name但在我的外部接口系统中,它可能被调用first.这种模式非常好地将所有这些结合在一起,并且以紧凑,类型安全的方式使这些类型的系统中的消息传递变得非常容易.

现在我不记得为什么Scala改变了枚举实现,但我记得当我读它时它是有意义的.但问题是,我将在Scala中使用什么来取代这种设计模式?我讨厌失去它,因为它对我在某一天写的很多系统都非常有用和基础.

谢谢

scala

3
推荐指数
1
解决办法
300
查看次数

标签 统计

scala ×2

case-class ×1

enumeration ×1