2013-11-04 5 views
17

मेरे पास दो गुण वर्गों के साथ दो जावा क्लास हैं। मैं सभी गुणों को डेटा से भरे दूसरे बीन में कैसे कॉपी कर सकता हूं। मैं गुणों की प्रतिलिपि बनाने के लिए पारंपरिक रूप का उपयोग नहीं करना चाहता क्योंकि मेरे पास बहुत सारी गुण हैं।विभिन्न वर्गों में एक बीन से दूसरे बीन में गुणों की प्रतिलिपि कैसे करें?

अग्रिम धन्यवाद।

1 वर्ग

@ManagedBean 
@SessionScoped 
public class UserManagedBean implements Serializable { 

    private static final long serialVersionUID = 1L; 
    private String userSessionId; 
    private String userId; 
    private String name; 
    private String adress; 
    ...................... 

2 वर्ग

public class UserBean { 

    private String userSessionId; 
    private String userId; 
    private String name; 
    .................... 
+0

http://stackoverflow.com/q/5937567/193634 –

उत्तर

29

उपयोग BeanUtils:

import org.apache.commons.beanutils.BeanUtils; 

UserBean newObject = new UserBean(); 
BeanUtils.copyProperties(newObject, oldObject); 
+4

यह बीनयूल्ट्स नहीं है। कॉपीप्रॉपर्टीज (पुरानी ऑब्जेक्ट, न्यू ऑब्जेक्ट) लेकिन बीनयूटिल्स.पीपीप्रॉपर्टीज (न्यू ऑब्जेक्ट, पुरानी ऑब्जेक्ट)! – electrotype

+11

यदि आप org.springframework.beans.BeanUtils का उपयोग कर रहे हैं तो 'BeanUtils.copyProperties (oldObject, newObject) की तरह उपयोग करें; ' –

1

आप अपाचे के पुस्तकालय का उपयोग करते हैं, BeanUtils, तो आप इस आसानी से कर सकते हैं:

http://commons.apache.org/proper/commons-beanutils/

विशेष रूप से, (वस्तु, वस्तु)

http://commons.apache.org/proper/commons-beanutils/apidocs/org/apache/commons/beanutils/BeanUtils.html#copyProperties(java.lang.Object, java.lang.Object) copyProperties पर देखने

कॉपी संपत्ति सभी मामलों में जहां संपत्ति के नाम हैं के लिए गंतव्य सेम करने के लिए मूल सेम से मान वही।

0

सेट करने और संपत्ति मूल्य प्राप्त करने के लिए जावा प्रतिबिंब का उपयोग करें। वसंत बीन संपत्ति का उपयोग होता है जो संपत्ति मूल्य का उपयोग करता है। मैं आपको जावा प्रतिबिंब की सलाह दूंगा।

1

Dozer Framework देखें - यह मैपिंग ढांचे का ऑब्जेक्ट करने के लिए एक ऑब्जेक्ट है।

  • आमतौर पर यह प्रथा के अनुसार नक्शा होगा: विचार है कि है।
  • आप इस सम्मेलन को मैपिंग फ़ाइल के साथ ओवरराइड कर सकते हैं।

। । इसलिए मैपिंग फाइलें यथासंभव कॉम्पैक्ट हैं। कई मामलों के लिए यह उपयोगी है, जैसे उपयोग-मामले मैपिंग पुन: प्रयोज्य कोर मॉडल ऑब्जेक्ट्स पर सेवा पेलोड निर्दिष्ट करें।

स्प्रिंगसोर्स प्रशिक्षण पाठ्यक्रम प्रदान करते समय हम इस ढांचे को अक्सर इंगित करते थे।

+0

Btw की डुप्लिकेट: मैं डुप्लीकेट के रूप में इस सवाल को बंद करने के पक्ष में मत दिया है, और यहाँ मौजूदा डोजर जवाब का विस्तार किया : http://stackoverflow.com/q/5937567/193634 –

संबंधित मुद्दे