0

SuperCSV を使用して CSV ファイルを解析しています。私が抱えている問題は、他に 3 つのクラス (Office、Vehicle、Car) があることです。

私は OFFice The Grasp Creator を作成して、Vehicle 型のオブジェクトを作成し、Vehicle は Car を拡張するようにしました。

ImportCSV というクラスは、SuperCSV ライブラリを実装しています。ImportCSV は、CSV ファイルを解析するために OFfice、Vehicle、および Car のすべてのメソッドにアクセスする必要があります。そうしないと、エラーが発生します - SuperCsvReflectionException.

3 つの異なるクラスのすべてのメソッドにクラス ImportCSV へのアクセスを許可するにはどうすればよいですか、またはこれについての提案をお願いします。

4

1 に答える 1

0

スタックトレースに基づいて、あなたが提供したフィールド マッピングが間違っていると思います。

Super CSV 2.2.0 の時点で、一致する getter/setter を検索しようとすると、大文字と小文字の区別は無視されます。したがって、nameMapping を指定すると、、 など"TYCODE"と一致します。setTycode()setTYCODE()

それ以前のバージョンでは、大文字と小文字が一致する必要があります (最初の文字を大文字にし、setter の名前を取得するために「set」を前に追加しました)。この場合、setter を呼び出す必要がありますsetTYCODE()

私の推測では、古いバージョンの Super CSV を使用しており、ヘッダーとフィールド名の大文字と小文字が異なっていると思われます。つまり、ヘッダーにはあり"TYCODE"ますが、Office クラスのフィールド名は ですtycode。それまたはセッターは公開されていません。

于 2014-06-25T12:58:12.420 に答える