aboutsummaryrefslogtreecommitdiff
path: root/website/usageExamples/GetterLazyExample_post.jpage
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2017-05-08 21:28:02 +0200
committerReinier Zwitserloot <reinier@zwitserloot.com>2017-05-29 21:02:54 +0200
commit8b7a7cbc813653a3248d6cf3a7779e220957bc85 (patch)
treeb9acfb9d68c6866acc3cfb9ee59d72ff43f1ebc3 /website/usageExamples/GetterLazyExample_post.jpage
parent72fd50b9f1db1ab6bfc1753ba6a1e686a2f0f22c (diff)
downloadlombok-8b7a7cbc813653a3248d6cf3a7779e220957bc85.tar.gz
lombok-8b7a7cbc813653a3248d6cf3a7779e220957bc85.tar.bz2
lombok-8b7a7cbc813653a3248d6cf3a7779e220957bc85.zip
The great rename: the old ‘website’ is now ‘website-old’, and ‘website2’ is now ‘website’.
Diffstat (limited to 'website/usageExamples/GetterLazyExample_post.jpage')
-rw-r--r--website/usageExamples/GetterLazyExample_post.jpage26
1 files changed, 26 insertions, 0 deletions
diff --git a/website/usageExamples/GetterLazyExample_post.jpage b/website/usageExamples/GetterLazyExample_post.jpage
new file mode 100644
index 00000000..5f34c43e
--- /dev/null
+++ b/website/usageExamples/GetterLazyExample_post.jpage
@@ -0,0 +1,26 @@
+public class GetterLazyExample {
+ private final java.util.concurrent.AtomicReference<java.lang.Object> cached = new java.util.concurrent.AtomicReference<java.lang.Object>();
+
+ public double[] getCached() {
+ java.lang.Object value = this.cached.get();
+ if (value == null) {
+ synchronized(this.cached) {
+ value = this.cached.get();
+ if (value == null) {
+ final double[] actualValue = expensive();
+ value = actualValue == null ? this.cached : actualValue;
+ this.cached.set(value);
+ }
+ }
+ }
+ return (double[])(value == this.cached ? null : value);
+ }
+
+ private double[] expensive() {
+ double[] result = new double[1000000];
+ for (int i = 0; i < result.length; i++) {
+ result[i] = Math.asin(i);
+ }
+ return result;
+ }
+}