मैं एक रूप है जो केवल String
चर स्वीकार कर रहा है, लेकिन मैं एक Class
उदाहरण उत्पन्न करने के लिए कि इस तरह के प्रत्येक स्ट्रिंग संपत्ति उसके संगत प्रकार में बदल जाती है चाहता हूँ वर्ग में संपत्ति के नाम से पहचाना गया।प्रपत्र स्ट्रिंग इनपुट का स्वत: रूपांतरण अन्य जावा प्रकार मान गतिशील रूप से एक वर्ग उदाहरण उत्पन्न करने के लिए
उदा। अगर मेरे पास NAME
, ANNUAL SALARY
और isLocalResident
के नाम से तीन फ़ील्ड हैं। मैं इस फॉर्म को Class1
के उदाहरण में कनवर्ट करना चाहता हूं, जहां ये गुण String
, BigInteger
और Boolean
प्रकार हैं।
मैं यह कैसे कर सकता हूं?
वर्तमान में मैं BeanUtil
जावा की संपत्ति का उपयोग कर रहा हूं, लेकिन यह मेरी आवश्यकता को पूरा नहीं करता है क्योंकि यह केवल इसके आवश्यक प्रकारों में गुप्त नहीं होता है; बल्कि यह मुझे वांछित प्रकार के एक सेटटर और गेटर पूछता है। कृपया मुझे इससे बाहर निकलने में मदद करें। किसी भी सुझाव का स्वागत है?
पी ध्यान दें कि यह फ़ॉर्म गतिशील है, यानी संख्या और फ़ील्ड का नाम किसी अन्य इनपुट पर निर्भर करेगा। निम्न कोड emp1
Employee1
कक्षा के लिए उदाहरण उत्पन्न करने का प्रतिनिधित्व करता है।
public Empolyee1 setContent(List<String> nameList, List<String> valueList) {
Empolyee1 emp1 = new Empolyee1();
for(String attr : nameList) {
if(attr.equalsIgnoreCase("name")) {
if(valueList.get(nameList.indexOf("name")) != null && !valueList.get(nameList.indexOf("name")).trim().equals("")) {
emp1.setName(valueList.get(nameList.indexOf("name")));
}
} else {
if(attr.equalsIgnoreCase("ANNUAL SALARY")) {
if(valueList.get(nameList.indexOf("ANNUAL SALARY")) != null && !valueList.get(nameList.indexOf("ANNUAL SALARY")).trim().equals("")) {
emp1.setAnnualSalary(valueList.get(nameList.indexOf("ANNUAL SALARY")));
}
} else {
if(attr.equalsIgnoreCase("isLocalResident")) {
if(valueList.get(nameList.indexOf("isLocalResident")) != null && !valueList.get(nameList.indexOf("isLocalResident")).trim().equals("")) {
emp1.setIsLocalResident(valueList.get(nameList.indexOf("isLocalResident")));
}
}
}
}
return empl1;
}
यह स्पष्ट नहीं है: आप एक कक्षा को गतिशील संख्या (गतिशील प्रकार के) के साथ स्वचालित रूप से रूपांतरित करने के साथ उदाहरण देना चाहते हैं? आप गुणों की संख्या और प्रकार को नहीं जानते हैं, लेकिन क्या आप समग्र संख्या और गुणों के प्रकार को जानते हैं? क्या आप जानते हैं (उदाहरण के लिए) 50 संभावित विशेषताओं, कि फार्म में हर क्रमपरिवर्तन में गठबंधन कर सकते हैं? –
इसे देखें। http://stackoverflow.com/questions/13868986/ गतिशील रूप से-create-an-object-in-java-from-a-class-name-and-set-class-fields-by-u – Vel
@AndreaLigios, हाँ मुझे पता है कुल संख्या और गुणों का प्रकार। उदाहरण के लिए, मेरे पास 100 विशेषताओं की कुल संख्या वाले 10 अलग-अलग वर्ग हैं। और प्रत्येक वर्ग में अलग-अलग गुण हो सकते हैं। और मेरे पास गेटटर और सेटर युक्त 10 कक्षाओं में से प्रत्येक के लिए xsd है। अब, मुझे यूआई से चयनित कक्षा सेट करनी है। –