でクラスフィールドで合成メンバーを探す:私は、クラス内のすべてのフィールドのホールドを取得するにはScalaでは、次の方法を使用していScalaの
val fields = contract.getClass.getDeclaredFields.toList.map(value => {
value.setAccessible(true)
value.getName
})
contract
が私のコードでクラスとして定義されています。 私はリフレクションを使用しているので、問題は別の要素$jacocoData
をフィールドの1つとして取得することです。私はこのフィールドを無視したい。それを行う 'ハッキーな'方法は、リストの最後に常に追加されるという事実を知ることです。関数の署名を変更してproductArity
を含むように修正することができ、最初のarity
のような要素だけを取ることができますこの:
def getFields(contract: Contract, arity: Int): List[String] = {
val fields = contract.getClass.getDeclaredFields.toList.map(value => {
value.setAccessible(true)
value.getName
})
//to ignore $jacocoData (Java code coverage) field
val firstnFields = fields.take(arity)
firstnFields
}
this FAQの最後のポイントによると、私はクラスの合成メンバーをオフに取り除く必要があります。それ、どうやったら出来るの?