7

की संपत्ति वहाँ एक XXXUtils जहाँ मैंgetName द्वारा एक अलग स्ट्रिंग में व्यक्ति वस्तु की एक सूची कन्वर्ट() व्यक्ति वस्तु

String s = XXXUtils.join(aList, "name", ","); 

जहां "name"aList में वस्तु से एक JavaBeans संपत्ति का पता लगा सकते है।

मुझे मिला join विधि, लेकिन यह केवल List<String> को अलग String में बदल देता है।

तरह

StringUtils.join(BeanUtils.getArrayProperty(aList, "name"), ",") 

कि तेजी से और worths का उपयोग कर कुछ। BeanUtils 2 चेक अपवाद फेंकता है इसलिए मुझे यह पसंद नहीं है।

+0

http://stackoverflow.com/questions/1515437/java-function-for-arrays-like-phps- जॉइन विधि का उपयोग करने के तरीके के बारे में अधिक जानकारी यहां शामिल करें। –

+0

अच्छी तरह से हाँ, लेकिन मेरे पास स्ट्रिंग नहीं है, मेरे पास व्यक्ति है :) –

+1

अपनी खुद की उपयोगिता विधि बनाएं जो BeanUtils.getArrayProperty() का उपयोग करती है और चेक अपटाइम को चेकटाइम में बदल देती है। –

उत्तर

2

मैं किसी भी के बारे में पता नहीं कर रहा हूँ, लेकिन आप प्रतिबिंब है कि आप संपत्ति मूल्यों की सूची देता है का उपयोग कर अपनी खुद की विधि लिख सकता है, तो उस में शामिल होने के StringUtils का उपयोग करें:

public static <T> List<T> getProperties(List<Object> list, String name) throws Exception { 
    List<T> result = new ArrayList<T>(); 
    for (Object o : list) { 
     result.add((T)o.getClass().getMethod(name).invoke(o)); 
    } 
    return result; 
} 

आपके शामिल होने, कर पाने के लिए इस:

List<Person> people; 
String nameCsv = StringUtils.join(getProperties(people, "name")); 
12

जावा 8 यह ऐसा करने का तरीका:

String.join(", ", aList.stream() 
    .map(Person::getName) 
    .collect(Collectors.toList()) 
); 

या सिर्फ

aList.stream() 
    .map(Person::getName) 
    .collect(Collectors.joining(", ")));