16 Eylül 2019 Pazartesi

ImmutableList Sınıfı

Giriş
Şu satırı dahil ederiz.
import com.google.common.collect.ImmutableList; 
1. Eğer elimizde hazır bir List varsa ve sadece immutable bir view oluşturmak istiyorsak Collections.unmodifiableList(list); çağrısı yeterli.

2. Yok en baştan yeni bir immutable list gerekiyorsa
2.1 copyOf() metodu ile listenin kopyası alınır ve yepyeni bir liste yaratılır.
2.2 Bu sınıfın içindeki Builder kullanılarak yepyeni bir liste oluşturulabilir. Açıklaması şöyle.
Unlike Collections.unmodifiableList(java.util.List), which is a view of a separate collection that can still change, an instance of ImmutableList contains its own private data and will never change. ImmutableList is convenient for public static final lists ("constant lists") and also lets you easily make a "defensive copy" of a list provided to your class by a caller.
Thread Safety
Açıklaması şöyle.
Thread safety. It is safe to access this collection concurrently from multiple threads.
Abstract Class
Açıklaması şöyle. Yani bu sınıf abstract.
Guava's ImmutableCollection has sub-classes like ImmutableList that are (non-extendable) abstract classes rather than interfaces. 
addAll metodu
Şöyle yaparız.
ImmutableList<ProductCodeEnum> PRODUCTS_EXTENDED = ImmutableList.builder()
  .addAll(PRODUCTS).add(ProductCodeEnum.D, ProductCodeEnum.E).build();
builder metodu
ImmutableList.Builder<E> nesnesi döner.

copyOf metodu - Collection
Belirtilen Collection kullanılarak ImmutableList oluşturulur.
Örnek
Şöyle yaparız.
ImmutableList<String> iList = ImmutableList.copyOf(list); 
copyOf metodu - Iterable
Belirtilen Iterable kullanılarak ImmutableList oluşturulur.

of metodu
Örnek
Şöyle yaparız.
ImmutableList<ProductCodeEnum> PRODUCTS = ImmutableList.of(ProductCodeEnum.A,
  ProductCodeEnum.B, ProductCodeEnum.C);
Örnek
Şöyle yaparızz
ImmutableList<String> list = ImmutableList.of("hello", "world");
toImmutableList metodu
Collector metodu içindir.

Hiç yorum yok:

Yorum Gönder