仅在创建其他对象时测试对象是否相同

时间:2014-12-23 14:12:17

标签: java eclipse

我必须做一个班级的房子。 housenumber由int和char组成。房屋号码将被分配到另一个人居住的房子。

我想做什么:

每当创建一个对象housenumber时,我希望它检查它是否与另一个相同。但只有在创建了另一个对象时。

我认为可能有用:

因此,无论何时创建对象,我们都运行方法control(); 方法控件是一个布尔值,如果它们相同则应该返回true。 我知道.equals(object)可以使用,但我不知道如何在那里获得一个对象。 让我们说我创造了一个。它应该检查是否创建了b但是因为没有hè返回一个真值并且可以创建该对象。如果我创建b。它将检查并查找存在。然后,如果b!= a,它将返回一个假值,并且可以创建b。如果a == b它将返回false而b将被设置为a(指向相同的变量和东西)

我希望它不是太模糊

2 个答案:

答案 0 :(得分:2)

您要做的是为Housenumber个对象创建工厂。这样的工厂可以将引用(例如List)保存到您将在运行时创建的每个Housenumber对象。对这样的工厂实现create方法,应该采用通常传递给构造函数的参数,如果已经创建了具有相同输入参数的objcect(whitch将等于我),则返回现有对象或创建一个新的并将其添加到集合中。

答案 1 :(得分:0)

您必须编写自己的实现来检查对象是否相等。问题是.equals()只检查两个指针​​是否都指向同一个对象。

要创建对象的实例,您必须执行以下操作:

HouseNumber hn1 = new HouseNumber();

在此之后,如果你想比较它们:

hn1.equals(hn2); //here you would have to override it with your own implementation

这种实施并不困难。您必须检查charint是否匹配。