gpt4 book ai didi

groovy - Groovy 中的 'properties' 是什么?

转载 作者:行者123 更新时间:2023-12-04 01:47:17 25 4
gpt4 key购买 nike

groovy 中的属性看起来就像没有访问修饰符的 java 中的类字段。真的吗?或者它们有特殊的含义。似乎没有办法将属性设为私有(private)?

最佳答案

当 Groovy 类定义声明一个没有访问修饰符的字段时,会生成一个公共(public) setter/getter 方法对和一个私有(private)实例变量字段,根据 JavaBeans specification 也称为“属性”。 .

class A {
String property

/*
private String property

public void setProperty(String property) { ... }
public String getProperty() { ... }
*/
}

如果我们声明一个公共(public)实例变量字段,我们只会得到一个公共(public)字段,没有 setter/getter 方法对。
class A {
public String field

/*
public String field
*/
}

从 Groovy 客户端的 pov 来看,在运行时访问 Groovy 属性和公共(public)字段没有区别
def a = new A()
println a.field
println a.property

虽然 a.field直接访问实例变量和 a.property实际调用 a.getProperty() (或 a.setProperty(...) 赋值时)。但是由于该属性符合 JavaBeans 规范,因此该类可以在基于 Java 的环境中无缝使用。

我认为建立“私有(private)属性(property)”没有多大意义。 private将方法或实例/类变量的使用限制为宿主类类型。但也许您指的是创建一个私有(private)字段实例变量。

关于groovy - Groovy 中的 'properties' 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13225599/

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