Stringをパラメータとして受け入れ、汎用のオブジェクトに変換するユーティリティメソッドを実装しています。私は以下のコードで達成することができますが、弱点はです。解析が必要なすべてのオブジェクトには、文字列コンストラクタが必要です。オブジェクトにStringコンストラクタが必要であることを定義する方法はありません。ポリモーフィズムまたはジェネリックを使用してこれを達成する他のよりよい方法はありますか?文字列をオブジェクトに変換する一般的な方法
AAA.java
public class AAA {
private String id;
private String description;
public AAA(String str) {
// Do parsing...
}
ユーティリティメソッド。
public static <T extends Base> List<T> readFile(File file, Class<T> type) {
List<T> collection = new ArrayList<T>();
// Read file line by line and convert to Instance
Constructor<T> ctor = type.getConstructor(String.class);
T newInstance = ctor.newInstance(line);
if (newInstance != null) {
collection.add(newInstance);
}
return collection;
}
使用法:
List<AAA> list = FileUtil.readFile(file, AAA.class);
あなたの文字列はどのような形式ですか?またはあなたのファイル。それはCSVカンマで区切られているのか、それともJSONなのでしょうか? –
あなたは文字列のフォーマットを決めるのですか? –
@DanielvanHeerdenそれはCSVです。 – swemon