@Target(value=METHOD) @Retention(value=RUNTIME) @Documented @UseWith(value={COMPONENT,MIXIN,PAGE}) public @interface Cached
@Cached Date getNow() { new Date(); }You may not apply @Cached to void methods or methods with parameters. Note that this annotation is inheritance-safe; if a subclass calls a superclass method that has @Cached then the value the subclass method gets is the cached value. The watch parameter can be passed a binding expression which will be evaluated each time the method is called. The method will then only be executed the first time it is called and after that only when the value of the binding changes. This can be used, for instance, to have the method only evaluated once per iteration of a loop by setting watch to the value or index of the loop.
5.6.3 - Copyright © 2003-2021 The Apache Software Foundation.