3 回答

TA貢獻1779條經(jīng)驗 獲得超6個贊
您不能將字符串值分配給非String類型的 Java 對象。但是我假設(shè)您可以將一個從默認構(gòu)造函數(shù)構(gòu)造的空對象(如果存在)分配給為空的屬性。有了這個假設(shè),請嘗試以下解決方案:
for (PropertyDescriptor propertyDesc : beanInfo.getPropertyDescriptors()) {
if (propertyDesc.getReadMethod().invoke(job) == null
&& propertyDesc.getPropertyType() == String.class) {
propertyDesc.getWriteMethod().invoke(job, "NA");
}
else if (propertyDesc.getReadMethod().invoke(job) == null
&& propertyDesc.getPropertyType() != String.class) { //Other than String types
propertyDesc.getWriteMethod().invoke(job, propertyDesc.getPropertyType().newInstance());
}
}
不要忘記使用 try-catch 塊處理此代碼。并非類中的所有對象都可能具有默認構(gòu)造函數(shù),在這種情況下,您可能需要進一步自定義代碼。

TA貢獻1841條經(jīng)驗 獲得超3個贊
坦率地說,這只是不好的做法。如果要將對象保存在數(shù)據(jù)庫中并希望將空屬性保存為“NA”(無論出于何種原因),只需將列的默認值設(shè)置為“NA”。您還可以在構(gòu)造函數(shù)中使用屬性值 = 'NA' 來初始化對象,從而節(jié)省大量循環(huán)對象屬性的時間。

TA貢獻1866條經(jīng)驗 獲得超5個贊
如果您不在構(gòu)造函數(shù)中使用 N/A 初始化這些變量,您還可以在每個對象上使用一個方法,將空變量設(shè)置為 N/A 并調(diào)用它。
添加回答
舉報