gpt4 book ai didi

java - Scala/Java 枚举

转载 作者:搜寻专家 更新时间:2023-11-01 01:10:20 26 4
gpt4 key购买 nike

我读过 thisthis ,但我仍然不明白在 Scala 中执行此操作的(惯用的)等效方法

enum Status { 
OK(1, "Ok", "Okay"),
NOT_OK(5, "Not Ok", "Not Okay")
BAD(10, "Bad", "Run for your life")

int code;
String name;
String description; // custom fields

Status(int code, String name, String description) {
this.code = code;
this.name = name;
this.description = description;
}
}

class Main {
public static void main(String[] args) {
for(Status status : Status.values) { // iterate through them
doStuff(status);
}
}

private doStuff(Status status) {
System.out.println(status.description);
// and more
}
}

最佳答案

在 Scala 中,您可以创建一个类似于 Java 中的“枚举”的枚举结构。基本上,您需要做的只是扩展 scala.Enumeration class。如果您需要一个更复杂的类作为枚举,则扩展一个 Val 类。否则,您可以使用采用 Int 或 String 或两者的默认 Val 类。下面是您的 Java 代码的 Scala 版本。

object Status extends Enumeration {

case class StatusVal(code: Int, name: String, description: String) extends Val

val OK = StatusVal(1, "Ok", "Okay")
val NOT_OK = StatusVal(1, "Not Ok", "Not Okay")
val BAD = StatusVal(1, "Bad", "Run for your life")
}

object Application extends App {
Status.values foreach (s => println(s.asInstanceOf[StatusVal].description))
}

关于java - Scala/Java 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21537148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com