首页 > 解决方案 > 方法作为参数,枚举值要使其类型化

问题描述

我有这样的方法:

def fieldsCheck(columnNames: Seq[TestProductColumnNames.Value]): ValidationNel[ColumnNameValidateError, Unit]

但我想让它打字,所以它可能需要每个

斯卡拉枚举

可能吗 ?

当然,我需要在这种方法中获取字符串中的值或它们的 id。所以编译器需要知道这个类型化的参数是枚举

标签: scala

解决方案


感谢@KrzysztofAtłasik,我设法提出了一个我想与你分享的解决方案:

trait ColumnNamesValidator[T <: Enumeration#Value] {
  val mandatoryColumnNames: Seq[T]

  def mandatoryFieldsCheck(sheetColumnNames: Seq[T]): ValidationNel[ColumnNameValidateError, Unit] = ... ( implementation )

}

和使用它的类:

class TestColumnNamesValidator extends ColumnNamesValidator[TestColumnNames.Value]

推荐阅读