mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-18 08:14:57 +00:00
[fixes #880] get rid of an unchecked cast warning for @Getter(lazy=true)
This commit is contained in:
19 files changed
+161
-39
No files matched your search
@@ -0,0 +1,44 @@
|
||||
class GetterLazyGenerics<E> {
|
||||
private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.lang.Object> field = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
|
||||
private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.lang.Object> field2 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
|
||||
GetterLazyGenerics() {
|
||||
super();
|
||||
}
|
||||
public static <E>E getAny() {
|
||||
return null;
|
||||
}
|
||||
public @java.lang.SuppressWarnings({"all", "unchecked"}) E getField() {
|
||||
java.lang.Object value = this.field.get();
|
||||
if ((value == null))
|
||||
{
|
||||
synchronized (this.field)
|
||||
{
|
||||
value = this.field.get();
|
||||
if ((value == null))
|
||||
{
|
||||
final E actualValue = getAny();
|
||||
value = ((actualValue == null) ? this.field : actualValue);
|
||||
this.field.set(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return (E) ((value == this.field) ? null : value);
|
||||
}
|
||||
public @java.lang.SuppressWarnings({"all", "unchecked"}) long getField2() {
|
||||
java.lang.Object value = this.field2.get();
|
||||
if ((value == null))
|
||||
{
|
||||
synchronized (this.field2)
|
||||
{
|
||||
value = this.field2.get();
|
||||
if ((value == null))
|
||||
{
|
||||
final long actualValue = System.currentTimeMillis();
|
||||
value = actualValue;
|
||||
this.field2.set(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return (java.lang.Long) value;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user