java - 避免对象中的参数参数具有相同的值

标签 java oop object parameters arguments

假设我在 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/

相关文章:

python - 是否可以在 Pyspark 中继承 DataFrame?

C# 抽象类,用于数组初始化

javascript - 使用对象方法实例化一个新对象 javascript

java - 如何链接以纯文本形式出现的 URL?

java - mybatis中如何调用oracle函数

java - 如何通过 fx :id 在 Scene Builder 中查找元素

c++ - 您如何调用位于类及其基类之间的接口(interface)?

java - 数组中的多个对象(java)

Java:动态连接未指定数量的二维数组

java - 为什么 for 循环生成的数组列表的长度始终为零(Java)?