我正在学习 JUnit,我知道 assertEquals() 调用 equals() 方法来比较对象...那么为什么下面比较两个正则表达式模式对象的测试没有通过?
@Test
public void testTwoCompiledPattern()
{
assertEquals(Pattern.compile("test"), Pattern.compile("test"));
}
这个通过:
@Test
public void testTwoCompiledPattern()
{
assertEquals(Pattern.compile("test").toString(), Pattern.compile("test").toString());
}
最佳答案
这是因为当您调用 toString() 方法时,两者都返回“test”字符串,因为 Pattern 类覆盖了它。但是,如果您只比较 Pattern 对象,它们是 2 个不同的对象,因此一个不等于另一个,即使它们具有相同的状态。
equals 方法检查引用是否相等。
关于java - JUnit,比较对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11028854/