【发布时间】:2020-01-23 06:50:43
【问题描述】:
假设我像这样在 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");等
谢谢
【问题讨论】:
-
不,您不需要 / 应该这样做。您可能想要的是禁止将具有相同数据的第二个
Student实例持久化或添加到Course或其他任何东西,但是您应该不禁止创建对象本身。 -
是否允许
new Student("Tom", "female")或new Student("Not Tom", "male")?不清楚您所说的“相同值”是什么意思... -
我认为您需要一个嵌入式 ID。如果您尝试创建具有重复值的对象,则不允许这样做。
-
您可以通过添加连接名称、性别来创建静态字符串哈希集。所以你的 HashSet 中的数据看起来像
Tom,male、Tom,female、John,male。在Student类的参数化构造函数中,如果其中没有Name,Gender,您可以检查HashSet,然后实例化和对象。类似的东西!
标签: java oop object parameters arguments