假设我有两个变量 abc 和 xyz 如下:
Untitled abc = Untitled.getInstance();
Untitled xyz = Untitled.getInstance();
如何比较这两者以检查两者是否包含相同的实例?我的意思是我想验证 Untitled 是否是 Singleton 类。
假设我有两个变量 abc 和 xyz 如下:
Untitled abc = Untitled.getInstance();
Untitled xyz = Untitled.getInstance();
如何比较这两者以检查两者是否包含相同的实例?我的意思是我想验证 Untitled 是否是 Singleton 类。
如果我没记错的话,我想你在这里问了两个问题。
要检查 abc 和 xyz 是否是相同的实例,只需使用 '==' 运算符。它检查引用相等性。
if (abc == xyz)
{
//true
}
要检查对象是否是特定类的实例,
if(obj instanceof ClassName)
{
}
您可以比较两个变量a == b
以查看它们是否引用同一个对象,但这不一定意味着它们是单例,如果像这样比较,指向同一个对象的两个变量也会返回相同的值。
检查 abc 和 xyz 的参考。你会看到同样的结果。
if(abc==xyz)
它会回来true
的。
对于 JUnit 测试,您可以使用类似的东西。
import static org.junit.Assert.assertSame;
assertSame("Objects are not same ",expected, actual);
它验证 if (expected == actual) 并且不调用 equals() 方法的调用。