Как я могу кэшировать один объект?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу кэшировать один объект?

Сообщение Anonymous »

У меня есть класс, который инициализирует свои внутренние данные из файла ресурсов, и я хочу дать клиентам возможность выбирать, использовать ли новые экземпляры или кэшированный экземпляр.
Вот как это выглядит.

Код: Выделить всё

// Immutable, hence, thread-safe
class MyClass {

// Returns a new instance.
public static MyClass newInstance() {
// Loads resources, and constructs a new object
}

private MyClass() {
}
}
И вот что я добавляю для тех клиентов, которые хотят использовать кэшированный экземпляр.

Код: Выделить всё

    private static volatile SoftReference INSTANCE;

// multiple instances may be created,
// in a timing manner,
// which is ok
private static MyClass getInstance() {
var result = INSTANCE;
if (result == null || result.get() == null) {
result = INSTANCE = new SoftReference(newInstance());
}
return result.get();
}

public static  R applyInstance(
final Function

Подробнее здесь: [url]https://stackoverflow.com/questions/79789816/how-can-i-cache-a-single-object[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»