我有一個表格只接受String
變量,但我想生成一個Class
實例,以便將每個字符串屬性轉換爲其對應的類型由類別中的屬性名稱標識。自動將表單字符串輸入值轉換爲其他Java類型動態生成類實例
例如,如果我有一個名稱爲NAME
,ANNUAL SALARY
和isLocalResident
的表單中的三個字段。我想將此表單轉換爲Class1
的實例,其中這些屬性的格式爲String
,BigInteger
和Boolean
類型。
我該怎麼做?
目前我正在使用BeanUtil
java屬性,但它不符合我的要求,因爲它不會轉換爲其所需的類型;相反,它讓我想到了一種理想類型的二傳手和吸氣器。 請幫我解決這個問題。任何建議,將不勝感激?
P注意,這種形式是動態的,即字段的數量和名稱應取決於另一個輸入。 以下代碼表示Employee1
類的生成實例emp1
。
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/dynamically-create-an-object-in-java-from-a-class-name-and-set-class-fields-by-u – Vel
@AndreaLigios,是的,我知道屬性的總體數量和類型。例如,我有10個不同的類,總數爲100個屬性。每個類可以有不同數量的屬性。我有10個包含getter和setter的類中的每一個都有xsd。現在,我必須設置從UI中選擇的類。 –