tipik bir Java Bean bulunduğunu varsayalım:Java 8 zincirleme yöntem başvurusu?
class MyBean {
void setA(String id) {
}
void setB(String id) {
}
List<String> getList() {
}
}
Ve ben bir BiConsumer yardımıyla ayarlayıcıları çağıran bir daha soyut bir şekilde oluşturmak istiyoruz:
Map<SomeEnum, BiConsumer<MyBean, String>> map = ...
map.put(SomeEnum.A, MyBean::setA);
map.put(SomeEnum.B, MyBean::setB);
map.put(SomeEnum.List, (myBean, id) -> myBean.getList().add(id));
bir yolu var mı (myBean, id) -> myBean.getList().add(id)
lambda, zincirleme yöntem referansı, (myBean.getList())::add
veya myBean::getList::add
veya başka bir şeyle değiştirin?
'map.put (SomeEnum.List, (myBean, id) doest Ne -.> myBean.getList() ekleyin (id)); 'yapmak? – Andremoniy
Hayır yok. Yöntem referansları zincirlemeyi desteklemez. Örneğinizde, hangi iki yöntemin ikinci parametreyi alması gerektiği açık değildir. Neyse, neden bunu istiyorsun? – Holger
@Andremoniy Bir haritaya koyar, bir lambda şeklinde verilen bir "BiConsumer". – m3th0dman