java中的断言
我已经创建了一个断言行,如下所示java中的断言,java,assert,Java,Assert,我已经创建了一个断言行,如下所示 String title = "A"; int year = 2009; String director = "Zebra"; VideoObj a=新的VideoObj(头衔、年份、董事) 为什么会失败?? 下面是相等的方法 public boolean equals(Object thatObject) { if (!(thatObject instanceof VideoObj)) return false; Vi
String title = "A";
int year = 2009;
String director = "Zebra";
VideoObj a=新的VideoObj(头衔、年份、董事)
为什么会失败??
下面是相等的方法
public boolean equals(Object thatObject) {
if (!(thatObject instanceof VideoObj))
return false;
VideoObj that = (VideoObj) thatObject;
return ((_title.equals(that.title())) && (_director.equals(that.director())) && (_year == that.year()));
}
但是下面的声明
Assert.assertFalse(a.equals(new VideoObj(title, year, director + "1")));
没有失败吗?
有人能解释为什么第一个assert语句失败而不是第二个吗?您可能想在以下内容中使用
&&
而不是|
:
return ((_title.equals(that.title())) || (_director.equals(that.director())) || (_year == that.year()));
否则,你会检查头衔、导演或年份是否相同,而不是所有人都相同。应该这样吗
((_title.equals(that.title())&&(_director.equals(that.director())&&(_year==that.year()))
如果标题、年份和导演相等,则两个视频相等,而不是其中只有一个是…请展示一个简短但完整的程序来演示您的问题。特别是,这是一个奇怪的等式方法。你的
equals
方法是非常错误的。这是我从我的教授那里得到的。谓词在更正对&&
的更改后是否仍然无法提供预期的结果?为什么这一年与等价性没有密切关系?它现在起作用了,但如果它是一个| | | | |年,它不是经历了吗????
return ((_title.equals(that.title())) || (_director.equals(that.director())) || (_year == that.year()));