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

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

如何使用 OpenCSV 將 csv 導(dǎo)入 FX SimpleObjectProperties?

如何使用 OpenCSV 將 csv 導(dǎo)入 FX SimpleObjectProperties?

萬千封印 2022-11-02 10:30:37
對于學(xué)校作業(yè),我需要將 CSV 解析為 Bean,然后在 JavaFX GUI 中呈現(xiàn)。我決定使用圖書館 opencsv,它工作得很好。但是現(xiàn)在,我想將屬性直接解析為 SimpleObjectProperties。我怎么做?不幸的是,我找不到任何進(jìn)一步的信息。代碼如下所示:public class Phone {@CsvBindByName(column = "ENTITY_ID")private SimpleIntegerProperty entityId;@CsvBindByName(column = "OPERATING_COMPANY")private SimpleStringProperty operatingCompany;當(dāng)我運(yùn)行代碼時,我得到一個 CsvDataTypeMismatchException (Conversion of 1006 to javafx.beans.property.SimpleIntegerProperty failed)。非常感謝任何幫助,謝謝!
查看完整描述

2 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個贊

查看文檔,您似乎可以為您擁有的每種類型的屬性創(chuàng)建 CustomConverts;他們在文檔頁面上的示例,這是 IntegerPropertyConverter 的開始。


public class IntegerPropertyConverter extends AbstractCsvConverter {


   @Override

   public Object convert(String value) {

       return new SimpleIntegerProperty(Integer.parseInt(value));

   }


   @Override

   public String convertToWrite(Object value) {

       IntegerProprety prop = (IntegerProperty) value;

       return String.format("%d", prop.get());

   }


 }

然后你會使用:


@CsvCustomBindByName(column = "ENTITY_ID", converter = IntegerPropertyConverter.class)

private SimpleIntegerProperty entityId;

如果您需要使用較長的格式創(chuàng)建屬性,則需要覆蓋 AbstractBeanField 中的其他方法,例如public final void setFieldValue(T bean, String value, String header)您可以實(shí)際使用 bean 來創(chuàng)建


查看完整回答
反對 回復(fù) 2022-11-02
?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個贊

沒有簡單的方法可以解決這個問題。


您將Phone保留為POJO,并將整個對象映射為屬性


private SimpleObjectProperty<Phone> phone = new SimpleObjectProperty<Phone>();

或者您可以將屬性添加到電話


public class Phone {


    @CsvBindByName(column = "ENTITY_ID")

    private Integer entityId;


    private final SimpleIntegerProperty entityIdProperty;


    public Phone() {

        entityIdProperty = new SimpleIntegerProperty();

        entityIdProperty.addListener((o, oldValue,newValue)->{

            entityId = newValue.intValue();

        });

    }


    public Integer getEntityId() {

        return entityId;

    }


    public void setEntityId(Integer entityId) {

        this.entityId = entityId;

        entityIdProperty.set(entityId);

    }


    public SimpleIntegerProperty getEntityIdProperty() {

        return entityIdProperty;

    }



    // ...

}

如果您不需要此對象具有雙向綁定,則可以跳過偵聽器。


還有其他可能性,例如使用方法和構(gòu)造函數(shù)從 Phone 轉(zhuǎn)換為 PhoneFX(使用屬性而不是簡單類型),反之亦然。


查看完整回答
反對 回復(fù) 2022-11-02
  • 2 回答
  • 0 關(guān)注
  • 124 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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