したがって、次のような Scala クラスがあります。
class TestClass {
var value: Option[Int] = None
}
そして、私は文字列値を持っていて、リフレクションを使用して実行時にその Option[Int] に強制したいという問題に取り組んでいます。したがって、別のコード (TestClass について何も知らない) には、次のようなコードがあります。
def setField[A <: Object](target: A, fieldName: String, value: String) {
val field = target.getClass.getDeclaredField(fieldName)
val coercedValue = ???; // How do I figure out that this needs to be Option[Int] ?
field.set(target, coercedValue)
}
これを行うには、フィールドが Option であり、Option の型パラメーターが Int であることを知る必要があります。
「値」のタイプが実行時に Option[Int] であることを理解するためのオプションは何ですか (つまり、リフレクションを使用します)?
@OptionType(Int.class) など、フィールドに注釈を付けることで同様の問題が解決されるのを見てきました。可能であれば、リフレクション ターゲットに注釈を必要としないソリューションを希望します。