@Target(value=FIELD)
@Retention(value=CLASS)
public @interface var
@var String name; // a public read-write property
You use the property directly as declared:
foo.name = "Scott"; // compiles as a call to foo.setName("Scott")
String theName = foo.name; // compiles as a call to foo.getName()
When used in an interface the property is public and abstract, public getter/setter method are generated.
When used in a class the property is public by default, a private final backing field is generated having the same
name, a public getter is generated returning the field and a setter is generated assigning the parameter value to
the field.
A property can be declared with static
. When used in a class, the same rules apply as non-static. Static
interface properties, however, must always be calculated -- getter/setter methods must be provided.
Note, the final
and abstract
modifiers can be used in a property declaration; they apply to the
getter/setter accessor methods. Thus, if there are user-defined getter/setter methods corresponding with the
property, they must reflect the modifiers from the property.
You can use get
and set
along with var
to override the modifiers declared on it:
@var @set(Protected) String name; // declares public read access and protected write access
Modifier and Type | Optional Element and Description |
---|---|
manifold.rt.api.anno.any[] |
annos
Use this argument to specify annotations to apply to the var's generated getter/setter methods.
|
manifold.rt.api.anno.any[] |
param
Use this argument to specify annotations to apply to the var's generated setter parameter.
|
PropOption[] |
value
Access options to override the property field's declared access.
|
public abstract PropOption[] value
Copyright © 2021. All rights reserved.