13 Ekim 2020 Salı

Stream.Builder Arayüzü

Giriş
Bu arayüzün add() ve accept() isimli iki metodu var. accept() coid dönüyor. add() ise this dönüyor. Açıklaması şöyle
Stream.Builder extends Consumer<T> so it must implement the accept(T) method.

But accept(T) returns void, so I think they added add(T) for convenience: methods in a builder pattern implementation often return this to be able to chain the building and finally call build().
add metodu
Örnek
Şöyle yaparız
Stream<Task> getAll(){
  Stream.Builder<Task> all2 = Stream.builder();

  all2.add(item1);
  ..

  return all2.build();
}
Örnek
Bu sınıf bir koşula bağlı olarak stream'in yaratılmasını değiştirebilir. Şöyle yaparız
Stream.Builder<MyType> builder = Stream.builder();
builder.add(a).add(b);
if(someCondition) builder.add(c).add(d);
builder.add(e).build()
/* stream operations */
Aslında aynı şeyi bir ArrayList kullanarak ta yapmak mümkün. Ancak Strream.Builder lazy olduğu için daha az bellek kullanımına sebep olabilir.

Hiç yorum yok:

Yorum Gönder