2011-01-07 11 views
2

I次のJavaコードがあります。JRubyとジェネリック

nameFinderModel = NameFinderME.train("en", "organization", 
     sampleStream, Collections.<String, Object>emptyMap()); 

を、次のように私の変換は次のとおりです。

nameFinderModel = NameFinderME.train("en", "organization", sample_stream, {}) 

これは、適切な変換ですか私は何かが足りないのですか? GenericsをJRubyに変換するための一般的なガイドラインはありますか?

答えて

2

これは正しい変換です。 Javaはコンパイル時にジェネリックを消去することを忘れないでください。引用符で囲むthe documentation

JavaクラスがJavaジェネリックで定義されている場合、コンパイル時に下位互換性のために型が消去されます。結果として。 JRubyは自動型変換に問題があります。たとえば、Map<String,String>がある場合、それは単純なMapと見なされ、JRubyはリフレクションを使用して正しいタイプを判別できません。