0

私はこのコードを持っています:

val host:String = Play.configuration.getString("auth.ldap.directory.host").get
val port:java.lang.Integer = Play.configuration.getString("auth.ldap.directory.port").get.toInt
val userDNFormat:String = Play.configuration.getString("auth.ldap.userDNFormat").get

これにさらに12個の構成オプションを追加する必要があるため、次のようなものにリファクタリングしたいと考えていました。

val params = Seq("auth.ldap.directory.host", "auth.ldap.directory.port", "auth.ldap.userDNFormat")
params.map(Play.configuration.getString) match {
  case host~port~userDNFormat => foo(host, port, userDNFormat)
}

私はそのコードを作りました。これを行うための適切な構文は何ですか?マップ/マッチラインでこのエラーが発生しますが、これはわかりません。

error: type mismatch;
found   : (String, Option[Set[String]]) => Option[String]
required: java.lang.String => ?
4

1 に答える 1

4

シーケンスに一致させるために、次のように書くことができます

case Seq(host, port, userDNFormat) => foo(host, port, userDNFormat)
于 2012-11-19T20:14:07.790 に答える