Groovy 中的字段名称前的@ 是什么意思?对于某些类,我可以访问无法直接访问的私有(private)字段,让我们使用 ComposedClosure例如:
public class Person {
private String name
}
def u = new Person(name:"Ron")
println u.@name //Ron
println u.name //Ron
a = {2} >> {3}
println a.@first //first closure object
println a.first //runtime error
最佳答案
它允许您覆盖 groovy 对属性访问器的使用。如果你写:
println u.name
groovy 将调用自动生成的 getter Person.getName()。如果你写:
println u.@name
它将像在 Java 中一样直接进入该字段。在关闭的情况下,似乎有一个
first
字段,但不是对应的 getFirst
访问者。在 groovy 手册中,它被记录为 direct field access operator .
关于reflection - 字段前的 Groovy @ 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8319403/