ArrayAdapterに渡すオブジェクトをArrayListに入力しようとしています(最終的に)。この問題を説明するために、いくつかのコードを小さなテストプロジェクトに引き出しました。
GenderとAge(Rules.Java)の2つのメンバーを持つRulesというクラスがあります。MyArrayTestクラスでは、Rulesオブジェクトのインスタンスを作成し、それらをrule_partsArrayListに追加しています。配列をループすると、ループは予想される回数実行されますが、最後の要素が複製されます。誰かがその理由を指摘してください。
Rules.Java
public class Rules {
public static String Gender;
public static Integer Age;
public Rules(String G, Integer C) {
//super();
Gender = G;
Age = C;
}
}
メインクラス-MyArrayTest.java
import java.util.ArrayList;
public class MyArrayTest {
private static ArrayList<Rules> rule_parts = new ArrayList<Rules>();
public static void main(String[] args) {
// Rules Array
rule_parts.add(new Rules("Male",25));
rule_parts.add(new Rules("Female",22));
System.out.printf("\n\nRules:\n\n");
for (Rules r : rule_parts) {
System.out.printf (r.Gender + "\n");
System.out.printf(r.Age + "\n");
}
}
}
出力は次のとおりです。
ルール:
女性22
女性22