1
私は、親クラスに抽象化しようとしている共有値がいくつかある不変のGroovyクラスを2つ持っています。しかし、私が次のように作成すると、2番目のテストケースは常に失敗します。すべてが正しくコンパイルされ、実行時にエラーはスローされませんが、コンストラクターの親プロパティintを割り当てると、決して設定されず、結果としてNULL値が返されます。私はこれを禁止する文書は見つかりませんでしたが、これも可能ですか?注釈とクラスタイプの設定をいくつか試しました(たとえば、親から抽象クラスを削除するなど)が、@Immutable
タグを完全に削除するだけでは不十分です。 ImmutableASTTransformation用コードに基づい親クラスを持つgroovy不変オブジェクト
abstract class TestParent {
String parentProperty1
}
@ToString(includeNames = true)
@Immutable
class TestChild extends TestParent {
String childProperty1
String childProperty2
}
class TestCase {
@Test
void TestOne() {
TestChild testChild = new TestChild(
childProperty1: "childOne",
childProperty2: "childTwo",
parentProperty1: "parentOne"
)
assert testChild
assert testChild.parentProperty1
}
}