私はあなたが文字列のFilterByDimension
enum
に存在するかどうかを確認したいあなたの質問を理解していれば、あなたのFilterByDimension
は
object FilterByDimensions extends Enumeration {
type FilterByDimensions = String
val Instance = Value("Instance")
val Platform = Value("Platform")
val Region = Value("Region")
import scala.util.control.Breaks._
def isSupported(s: String) = {
var exists = false
breakable {
for(value <- FilterByDimensions.values){
exists = s.equalsIgnoreCase(FilterByDimensions(value.id).toString)
if(exists){
break
}
}
}
exists
}
}
は、パターンマッチングに
を編集以下のようにする必要があり、そのをより良い使用するcase class
case class FilterByDimensions(value: String)
object FilterByDimensions {
object Instance extends FilterByDimensions("Instance")
object Platform extends FilterByDimensions("Platform")
object Region extends FilterByDimensions("Region")
val values = Seq(Instance, Platform, Region)
}
そしてたぶんあなたが探している
val ins = "Instance"
ins match {
case FilterByDimensions.Instance.value => println("instance match")
case FilterByDimensions.Instance.value => println("progressing")
case FilterByDimensions.Instance.value => println("region match")
case _ => println("doesn't match")
}
これは、Enumerationの使用を主張する場合、Enumerationを使用する方法ではありません。 http://www.scala-lang.org/api/current/scala/Enumeration.html –
列挙型には多くの選択肢があります。私は、この記事で長所と短所をまとめた記事を書いています。多分、一般的な考え方を得るのに役立ちます:http://pedrorijo.com/blog/scala-enums/ – pedrorijo91
(そしてフォローアップ:http:// pedrorijo.com/blog/scala-enums-part2/) – pedrorijo91