一般的な Scala コードから FastUtil や Trove などの特殊なコレクション ライブラリを呼び出そうとしています。のようなものを実装したいと思います
def openHashMap[@specialized K, @specialized V]: ${K}2${V}OpenHashMap =
new ${K}2${V}OpenHashMap()
${X}
は明らかに有効な Scala ではありませんが、テキスト置換のための私のメタ表記であるため、コンパイル時に型が認識されることになりますopenHashMap[Long, Double]
。Long2DoubleOpenHashMap
これは Scala マクロで可能ですか。もしそうなら、どの味ですか?def マクロ、暗黙的マクロ、fundep 実体化、マクロ注釈、型マクロ (現在は廃止) があることは知っていますが、これらは単純な Scala-2.10、2.10 マクロ パラダイスと Scala-2.11 では異なると思います。もしあれば、これらのうちどれがこれに適していますか?
それとも、バイトコード操作、言語仮想化など、これを行うことができる何かが他にありますか? しかし、今述べた代替案が可能であるとは思えません。