第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

遍歷對象并為空字段設(shè)置值

遍歷對象并為空字段設(shè)置值

浮云間 2022-05-21 20:51:11
我有一個類似的VO。public class Job{    private Long id;    private String createdBy;    private Set<JobStatus> jobStatuses;}還有更多類似的領(lǐng)域。我想遍歷 VO 中的字段并為所有沒有數(shù)據(jù)的字符串字段設(shè)置“NA”。這就是我到目前為止所擁有的。Job job = getJob();//getting the Job populatedBeanInfo beanInfo = Introspector.getBeanInfo(Job.class);for (PropertyDescriptor propertyDesc : beanInfo.getPropertyDescriptors()) {    if (propertyDesc.getReadMethod().invoke(job) == null        && propertyDesc.getPropertyType() == String.class) {      propertyDesc.getWriteMethod().invoke(job, "NA");}}這很好用。但是現(xiàn)在我需要遍歷其他本身就是對象的字段并動態(tài)地做同樣的事情。喜歡Set<JobStatus> jobStatuses。我該怎么做 ?
查看完整描述

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ù),在這種情況下,您可能需要進一步自定義代碼。


查看完整回答
反對 回復(fù) 2022-05-21
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

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



查看完整回答
反對 回復(fù) 2022-05-21
?
心有法竹

TA貢獻1866條經(jīng)驗 獲得超5個贊

如果您不在構(gòu)造函數(shù)中使用 N/A 初始化這些變量,您還可以在每個對象上使用一個方法,將空變量設(shè)置為 N/A 并調(diào)用它。



查看完整回答
反對 回復(fù) 2022-05-21
  • 3 回答
  • 0 關(guān)注
  • 270 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號