mirror of
https://github.com/tiennm99/lombok.git
synced 2026-05-26 00:01:06 +00:00
27 lines
751 B
Plaintext
27 lines
751 B
Plaintext
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;
|
|
}
|
|
}
|