1

カスタムオブジェクトのリストからCSVファイルを生成したいのですが。

私は抽象クラスを持っています:

public abstract class MyClass{
    public static final String SEPARATOR = ";";

    // many private variables

    @Override
    public String toString(){
        // return all my variables values separated by SEPARATOR
    }
}

そして、このクラスから継承するいくつかの具象クラス。toString()各具象クラスで再実装せずに、このクラスでのみメソッドを実装したいと思います。

これを実現するための便利なライブラリはありますか、それともtoString()クラスごとに手動でメソッドを実装する必要がありますか?リフレクションを使用する必要がありますか?

4

3 に答える 3

2

opencsvという名前の要件に似たライブラリがあります

于 2012-06-08T09:05:41.427 に答える
1

を使用しOpenCSVます。これは、CSVファイルを解析および書き込むためのライブラリであり、引用符、さまざまな区切り文字、および複数行の値を処理します。

于 2012-06-08T09:05:59.953 に答える
1

リフレクションアプローチの問題は次のとおりです。1)csvテーブルに必要のない具体的なクラスのフィールドを簡単に取得できます。2)csvテーブルのヘッダーをどのように生成しますか?

また、csv生成ロジックをカスタムオブジェクト内に配置するのは悪い設計だと思います。もちろん、それらが何を表しているかによって異なります(間違いなく、あなたのアプローチを支持する理由もあるかもしれません)。そのために別のクラスを使用することを検討してください。

はい、リフレクションを使用できます(必ず)。いいえ、これを処理するライブラリがすでに存在するかどうかはわかりません。他の人が言及しているOpenCSVは、CSVテーブルに必要な値があれば、すべてをまとめる作業を実行できます。

Class.getFields()、Field.setAccessible()(必要な場合)を見てください。実際、リフレクションを使用するのはそれほど難しくありません。

于 2012-06-08T09:18:28.440 に答える