2013-07-28 8 views
24

タイプセーフの設定ライブラリとリストを取得する方法:私は、パラメータ設定something.confで<a href="http://typesafehub.github.io/config/latest/api/index.html">http://typesafehub.github.io/config/latest/api/index.html</a></p> <p>タイプセーフでsomething.confのような設定ファイルからリストを取得するにはScalaでしようとしている

mylist=["AA","BB"] 

と私は私のScalaのコードで:

val myList = modifyConfig.getStringList("mylist") 

シンプルな設定パラメータが正常に動作しますが、誰かが私にリストを抽出する方法の例を与えることができますか?

乾杯!

+1

あなたは質問を明確にすることはできますか? APIを見ると、コードは上手く見えます。 'myList'に' List [String] 'があります。 –

+2

私は、 'getStringList'の結果がScalaの' List'であると予想していると思います。これはそうではありません。 'typesafe-config'は純粋なJavaライブラリであり、' getStringList'は 'java.util.List'の実装を返します。 – ghik

答えて

26

@ghikの注記のとおり、TypesafeコンフィグレーションライブラリはのJavaに基づいているため、scala.List[String]ではなくjava.util.List[String]になります。あなたはScalaのライブラリを探し

import collection.JavaConversions._ 
val myList = modifyConfig.getStringList("mylist").toList 

か(おそらくあまりぎこちない):だからどちらかがscala.Listへの変換を行います。少なくともこれらの維持ライブラリへtools wikiリンク:

(免責事項:あなたは彼らがあなたの種類や形式をサポートすることを確認する必要がありますので、私は、これらを使用していません)

+2

私はScalaの新人です:-)あなたは正しく、scala.Listでjava.util.Listを混合しています。 'import collection.JavaConversions._ val myList = modifyConfig.getStringList(" mylist ")。toList'このトリックをやったのですか?ありがとう、私はこれらのリンクを確認します... – Martin

2

私のスカラーラッパーhttps://github.com/andr83/scalaconfigを試すことができます - これは設定オブジェクトから直接ネイティブのスカラ型を読み込むことをサポートしています。あなたのケースでは、それはなります:あなたができるように、レコードの

val myList = modifyConfig.as[List[String]]("mylist") 
14

を、Scalaの2.12 JavaConversionsので、廃止されました:

import collection.JavaConverters._ 
val myList: List[String] = modifyConfig.getStringList("mylist").asScala.toList 
+2

これは今正しい答えとしてマークする必要があります。 –

+0

これは確かに「より多くの」正解とマークされるべきです。 – bigdatamann

関連する問題

 関連する問題