私はjackson経由でCSVをダンプしています。私はいくつかのマッピングクラスを持っており、マッピングクラスをCSVエクスポートメソッドに渡したいと思っています。Javaでコンストラクタをリフレクション経由で呼び出すにはどうすればよいですか?
私は抽象クラスを持っており、これを各csvカラムフォーマットに拡張しました。クラスの名前をエクスポート関数に渡し、そのクラスのコンストラクタを介してデータをマップし、CSVとしてダンプします。
マッピングを実行してエクスポートされるクラスを作成するまでは問題ありません。
呼び出し例外/無効なパラメータ数の例外です。
protected String mapTransactionsToCSV(List<Object[]> results, String rowClassName)
Class rowClass = Class.forName(rowClassName);
for (Object[] component : results)
VehicleAbstract vehicle = (VehicleAbstract) rowClass.getDeclaredConstructor(Object[].class).newInstance(component);
csv.append(mapper.writer(schema).writeValueAsString(vehicle));
}
}
私の特定のクラス(および抽象クラス、試しにコピーしたもの)。 2つのコンストラクタ
public Bus() {}
public Bus(Object[] component) {}
良い質問 - すばやく整形し、素敵な、きちんとした例を与えてくれてありがとう。常に助けてください=) – Addison