[fixes #880] get rid of an unchecked cast warning for @Getter(lazy=true)

This commit is contained in:
Reinier Zwitserloot committed 2020-02-06 23:57:30 +01:00
1 parent 2e06cb3ff1
commit 8943b49dfe
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;
}
}