インスタンス変数を静的にすることについて、このようなJavaの問題に遭遇しました。
public class Student {
private static String name;
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
とテスト:
public void testBadStatic() {
Student studentA = new Student("a");
assertEquals("a", studentA.getName());
Student studentB = new Student("b");
assertEquals("b", studentB.getName());
assertEquals("a", studentA.getName());
name変数は静的であるため、2番目のassertEqualsは失敗すると思います。そのため、すでに「a」が割り当てられています。ただし、正しい出力は、2番目のアサーションではtrue、最後のアサーションではfalseである必要があります。誰かが私がこれを理解するのを手伝ってもらえますか?
ありがとう。