前提
Junitにて色々なBeanのListデータが必要になりました。
しかし、Beanの型は異なるけど、「Beanを生成して特定のフィールド値を設定する。それをListに詰める。」は同じで、似たような処理を書くのは面倒くさいです。
なので、「List<JavaBeans>」型を返却するメソッドを作成することにしました。
実現したいこと
対象Bean名で分岐させ各々で処理する方法を思いつきましたが、対象Beanが増えるとその分を追記しなければなりません。そこで、for文の箇所を共通化する方法はありますか?
該当のソースコード
実施環境に今いないので、思い出しながら下記ソースを書きました。
なので、正確ではないことはご了承ください。
// List作成メソッド (arrayがリストに詰めるためのデータ) public List<T> createList(Class<T> clazz, String[] array){ // 戻り値 List<T> list = new ArrayList<>(); // 名前によって分岐 switch (clazz.getSimpleName()) { case "ABean": // ABeanの場合 for (String s: array) { ABean bean = new ABean(); bean.setName(s); list.add(clazz.cast(bean)); } break; case "BBean": // BBeanの場合 for (String s: array) { BBean bean = new BBean(); bean.setAddress(s); list.add(clazz.cast(bean)); } break; case default: break; } retrun list; } public class ABean () { private name; } public class BBean () { private address; }
回答4件
あなたの回答
tips
プレビュー