Instancio中Select.field无法选中抽象父类字段,如何设置父类id为null
解决Instancio设置抽象父类字段为null的问题
问题核心是直接使用Select.field("id")时,Instancio无法定位到父类EntityWithId中的id字段,需要明确指定字段所属的父类。
正确写法
可以通过两种方式精准选中父类的id字段:
方式一:使用Kotlin引用父类属性
Instancio.of(ChildEntity::class.java) .set(Select.field(EntityWithId::id), null)
方式二:指定父类Class和字段名
Instancio.of(ChildEntity::class.java) .set(Select.field(EntityWithId::class.java, "id"), null)
原理说明
当字段定义在父类中时,仅传入字段名字符串"id",Instancio会优先查找子类自身的字段(即使子类没有该字段,也不会自动向上查找父类)。通过明确指定字段所属的父类,就能让Instancio正确定位到目标字段。
内容的提问来源于stack exchange,提问作者mikeb
相关产品推荐
相关产品推荐

