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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

創(chuàng)建從任何自定義對(duì)象類型創(chuàng)建 csv 字符串的方法 - 通用

創(chuàng)建從任何自定義對(duì)象類型創(chuàng)建 csv 字符串的方法 - 通用

慕無(wú)忌1623718 2022-06-04 09:54:53
是否可以創(chuàng)建方法來(lái)循環(huán)任何自定義對(duì)象類型的列表,然后從中構(gòu)建一個(gè) csv 字符串?到目前為止,我有一個(gè)這樣的方法簽名:loopData(List<T> records){}然后我想循環(huán)對(duì)象中的每個(gè)字段,而不必指定對(duì)象類型。到目前為止,這就是我所看到的,但它似乎明確說(shuō)明了對(duì)象類型,如 ClassABC 中所示:ClassABC abc = new ClassABC();//!!explicitly stating custom object type!!!for (Field field : abc.getClass().getDeclaredFields()) {    field.setAccessible(true);    String name = field.getName();    Object value = field.get(abc);    System.out.printf("%s: %s%n", name, value);}有什么辦法可以做到這一點(diǎn)?循環(huán)每個(gè)字段而不明確說(shuō)明對(duì)象類型?像這樣的東西怎么樣:for(T o : records){            for(Field field:o.getClass().getDeclaredFields()) {                field.setAccessible(true);                String name = field.getName();               Object value = null;               try {                   value = field.get(o);               } catch (IllegalArgumentException | IllegalAccessException e) {                   // TODO Auto-generated catch block                   e.printStackTrace();               }               System.out.printf("%s: %s%n", name, value);            }}這個(gè)循環(huán)是否一致?它會(huì)每次都以相同的順序循環(huán)對(duì)象字段嗎?
查看完整描述

1 回答

?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

最后,這就是有效的...


我可以獲取字段名稱并將它們發(fā)送給 DOMO 以進(jìn)行創(chuàng)建,如下所示:


    List<Column> domoColumns = new ArrayList<Column>();

            for(Field field:o.getClass().getDeclaredFields()) {

                field.setAccessible(true);

                String name = field.getName();

                domoColumns.add(new Column(ColumnType.STRING,name));

            }

return domoColumns;

然后我像這樣創(chuàng)建 CSV:


StringBuilder stringBuilder = new StringBuilder();

    for (T o : records) {


        int numberOfFields = o.getClass().getDeclaredFields().length;

        int counter = 1;


        Field[] f = o.getClass().getDeclaredFields();

        for (int i = 0; i < o.getClass().getDeclaredFields().length; i++) {

            f[i].setAccessible(true);

            Object value = null;

            try {

                value = f[i].get(o);


                if (counter < numberOfFields) {

                    stringBuilder.append("\"").append(value).append("\"").append(",");

                } else {

                    stringBuilder.append("\"").append(value).append("\"").append(System.getProperty("line.separator"));

                }

            } catch (IllegalArgumentException | IllegalAccessException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }


            counter++;

        }



    }


查看完整回答
反對(duì) 回復(fù) 2022-06-04
  • 1 回答
  • 0 關(guān)注
  • 75 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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