假设我在 Java 中创建一个像这样的对象
Student std1 = new Student("Tom", "male");
我需要防止另一个对象(例如:std2、std3 等)与 std1 具有相同的值。怎么做?
[编辑]我想要的示例是:
不允许: Student std2 = new Student("Tom", "male");
允许: Student std2 = new Student("Not Tom", "male");
或 Student std2 = new Student("Tom", "female");
或 Student std2 = new Student("John", "male");
等
谢谢
最佳答案
您可以通过添加串联的姓名、性别来创建静态字符串哈希集。
class YourClass {
public static Set<String> studentSet = new HashSet<>();
public static void addStudent(String name, String gender) {
YourClass.studentSet.add(name + "," + gender);
}
public static Boolean studentExists(String name, String gender) {
return YourClass.studentSet.constains(name + "," + gender);
}
因此,您的 HashSet 中的数据将类似于 Tom,male 、Tom,female、John,male。
class Student {
...
public Student(String name, String gender) {
this.name = name;
this.gender = gender;
YourClass.addStudent(name, gender);
}
}
在创建 Student 实例时,您可以检查 HashSet 中是否没有 Name、Gender,然后实例化并对象。
if(!YourClass.studentExists(name, gender)) {
Student student = new Student(name, gender);
}
希望这能解决您的问题
关于java - 避免对象中的参数参数具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58058399/