@ सोरोडिप का उत्तर Apache Commons Collections पर आधारित एक कॉम्पैक्ट समाधान का उपयोग करता है। लेकिन उस समस्या का समाधान नहीं typesafe, के बाद से Transfomer संपत्ति का संदर्भ स्ट्रिंग अभिव्यक्ति के माध्यम से है: TransformerUtils.invokerTransformer("getName")
यहाँ एक अधिक वर्बोज़ है, लेकिन typesafe समाधान अपाचे कॉमन्स संग्रह का उपयोग कर:
Collection<String> values = CollectionUtils.collect(messages, new Transformer<Obj, String>(){
@Override
public String transform(Obj input) {
return input.getFoo();
}
});
ऊपर समाधान अपाचे कॉमन्स का उपयोग करता है संग्रह संस्करण> = 4, जो कि प्रकार की सुरक्षा के लिए जेनेरिक का समर्थन करता है।
नीचे अपाचे संग्रह के लिए कम typesafe संस्करण संस्करण < 4, जो जेनरिक का उपयोग नहीं करता है:
Collection values = CollectionUtils.collect(messages, new Transformer(){
@Override
public Object transform(Object input) {
Obj obj = (Obj) input;
return obj.getFoo();
}
});
आप सूची objs है और वह सूची कि foo विशेषता है से एक दूसरे सूची बनाना चाहते हैं objs से सभी Obj के? –
Ralph