gpt4 book ai didi

groovy - Groovy 中的父类(super class)字段访问

转载 作者:行者123 更新时间:2023-12-01 22:51:34 25 4
gpt4 key购买 nike

在 Groovy 中,有一个 @ 运算符,可以实现直接字段访问。然而,它似乎不适用于父类(super class)中声明的字段。考虑两个 Java(不是 Groovy)类:

class Entity {
private Long id;

Long getId() {
return id;
}
}

class User extends Entity {
}

然后在 Groovy 中调用直接访问

User user = new User();
user.@id = 1L

最终出现异常:groovy.lang.MissingFieldException:没有这样的字段:类 User 的 id

当我尝试使用标准访问user.id = 1L时,我得到groovy.lang.ReadOnlyPropertyException: Cannot set readonly property: id for class User

是否有任何选项可以访问父类(super class)中声明的字段?

最佳答案

您可能需要将该属性声明为 protected :

class Entity {
protected Long id;

Long getId() {
return id * 2;
}
}

class User extends Entity {
}

User user = new User();
user.@id = 1L

assert user.@id == 1L
assert user.id == 2L

这是直接访问字段运算符的修改示例。

关于groovy - Groovy 中的父类(super class)字段访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35991804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com