Message-ID: <1649245025.129.1394401001865.JavaMail.firstname.lastname@example.org> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_128_783475426.1394401001865" ------=_Part_128_783475426.1394401001865 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Groovy's convention for properties is that any field wi= thout any visibility modifier is exposed as a property, with a getter and a= setter transparently generated for you. For instance, this Person class ex= poses a getter getName() and a setter setName() for a private name field:= p>=20=20
Which is equivalent to this Java class:=20 =20
That said, this approach has one drawback in that you don't have the pos= sibility to define a field with package-scope visibility. To be able to exp= ose a field with package-scope visibility, you can now annotate your field = with the @PackageScope annotation.