CachedSupplier class
Пакет: com.hypixel.hytale.function.supplier
Файл: com/hypixel/hytale/function/supplier/CachedSupplier.java
implements: Supplier<T>
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
Supplier<T> |
delegate |
|
Object |
var2 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(!this.initialized) |
|
|
if if(!this.initialized) |
|
|
if if(this.initialized) |
|
|
if if(this.initialized) |
public |
void |
invalidatevoid invalidate() |
|
|
synchronized synchronized(this) |
|
|
synchronized synchronized(this) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.function.supplier;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nullable;
class="kw">public class CachedSupplier<T> class="kw">implements Supplier<T> {
class="kw">private class="kw">final Supplier<T> delegate;
class="kw">private class="kw">transient class="kw">volatile boolean initialized;
@Nullable
class="kw">private class="kw">transient T value;
class="kw">public CachedSupplier(Supplier<T> var1) {
this.delegate = var1;
}
@Nullable
@Override
class="kw">public T get() {
if (!this.initialized) {
class="kw">synchronized (this) {
if (!this.initialized) {
Object var2 = this.delegate.get();
this.value = var2;
this.initialized = true;
class="kw">return var2;
}
}
}
class="kw">return this.value;
}
@Nullable
class="kw">public T getValue() {
class="kw">return this.value;
}
class="kw">public void invalidate() {
if (this.initialized) {
class="kw">synchronized (this) {
if (this.initialized) {
this.value = null;
this.initialized = false;
}
}
}
}
}