0

假设我有两个变量 abc 和 xyz 如下:

Untitled abc = Untitled.getInstance();
Untitled xyz = Untitled.getInstance();

如何比较这两者以检查两者是否包含相同的实例?我的意思是我想验证 Untitled 是否是 Singleton 类。

4

4 回答 4

3

如果我没记错的话,我想你在这里问了两个问题。

要检查 abc 和 xyz 是否是相同的实例,只需使用 '==' 运算符。它检查引用相等性。

if (abc == xyz)
{
  //true
}

要检查对象是否是特定类的实例,

if(obj instanceof ClassName)
{

}
于 2013-02-27T06:23:28.250 回答
2

您可以比较两个变量a == b以查看它们是否引用同一个对象,但这不一定意味着它们是单例,如果像这样比较,指向同一个对象的两个变量也会返回相同的值。

于 2013-02-27T06:24:23.577 回答
0

检查 abc 和 xyz 的参考。你会看到同样的结果。 if(abc==xyz)它会回来true的。

于 2013-02-27T06:25:36.710 回答
0

对于 JUnit 测试,您可以使用类似的东西。

import static org.junit.Assert.assertSame;

assertSame("Objects are not same ",expected, actual);

它验证 if (expected == actual) 并且不调用 equals() 方法的调用。

于 2020-08-05T07:38:18.173 回答