草庐IT

assert_equal

全部标签

java - 不明确的方法调用 Assert 中的 assertEquals(Object, Object) 和 Assert 中的 assertEquals(double, double) 匹配 :

我收到以下错误:BothassertEquals(Object,Object)inAssertandassertEquals(double,double)inAssertmatch对于我的Junit测试中的这行代码,请注意getScore()返回一个double:assertEquals(2.5,person.getScore());这是我的断言导入:importstaticorg.junit.Assert.*;这是什么原因造成的,我该如何解决? 最佳答案 您的getScore()返回Double,而不是double。因此编译器很困

java - 在 equals 检查中避免 NullPointerException 的干净方法

我有一个地址对象,我想为其创建一个equals方法。我可以通过执行以下操作(缩短一点)使这变得非常简单:publicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;Addressother=(Address)obj;returnthis.getStreet().equals(other.getStreet())&&this.getStreetNumber().equals(other.getStreetN

Java Set 集合 - 覆盖 equals 方法

有没有办法覆盖Set数据类型使用的equals方法?我为一个名为Fee的类编写了一个自定义equals方法。现在我有一个Fee的LnkedList并且我想确保没有重复的条目。因此,我正在考虑使用LinkedList的Set,但决定两个费用是否相等的标准存在于重写的equals方法中费用类。如果使用LinkedList,我将不得不遍历每个列表项,并在Fee类中调用重写的equals方法剩余条目作为参数。仅阅读此内容听起来处理量太大,并且会增加计算复杂度。我可以将Set与重写的equals方法一起使用吗?我应该吗? 最佳答案 正如杰夫·

java - 我什么时候应该覆盖 Equals 函数?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Java:Alwaysoverrideequals?我应该为我创建的任何类重写equals函数吗?即使对于只包含一些非常简单的属性的非常简单的类,并且equals我需要它的每个属性都相等? 最佳答案 shouldIoverrideequalsfunctionforanyclassthatIcreate?覆盖equals如果(且仅当)对象“表示某些数据”,即如果它对诸如Person、Car之类的东西建模或RecipieIngredient(这些通常以集合等形

java - 如何比较Java中的 double 序列都是 "approximately equal"?

我在java中有一个返回double的方法,我想比较每次调用该方法时返回的每个double(比如5次),以便得出结论,返回的数字几乎相同每次。我该怎么做? 最佳答案 publicstaticbooleanalmostEqual(doublea,doubleb,doubleeps){returnMath.abs(a-b)其中eps是衡量平等的标准。 关于java-如何比较Java中的double序列都是"approximatelyequal"?,我们在StackOverflow上找到一个类

java - 为什么这些 == 但不是 `equals()` ?

当涉及到int、时,我对Java处理==和equals()的方式有点困惑整数和其他类型的数字。例如:IntegerX=9000;intx=9000;ShortY=9000;shorty=9000;Listresults=newArrayList();//results.add(X==Y);DOESNOTCOMPILE1)results.add(Y==9000);//2)results.add(X==y);//3)results.add(X.equals(x));//4)results.add(X.equals(Y));//5)results.add(X.equals(y));//6)S

java - 为什么 Java 的 Area#equals 方法不覆盖 Object#equals?

我刚刚遇到了由Java的java.awt.geom.Area#equals(Area)方法引起的问题。问题可以简化为以下单元测试:@org.junit.TestpublicvoidtestEquals(){java.awt.geom.Areaa=newjava.awt.geom.Area();java.awt.geom.Areab=newjava.awt.geom.Area();assertTrue(a.equals(b));//->truejava.lang.Objecto=b;assertTrue(a.equals(o));//->false}经过一番摸索和调试,终于在JDK源码中

java - 如何确保 hashCode() 与 equals() 一致?

当覆盖java.lang.Object的equals()函数时,javadocs建议,itisgenerallynecessarytooverridethehashCodemethodwheneverthismethodisoverridden,soastomaintainthegeneralcontractforthehashCodemethod,whichstatesthatequalobjectsmusthaveequalhashcodes.hashCode()方法必须为每个对象返回一个唯一整数(这在根据内存位置比较对象时很容易做到,只需返回唯一整数地址对象)应该如何重写hash

Java null.equals(对象 o)

我知道不可能像这样在空对象上调用equals方法://NOTWORKINGStrings1=null;Strings2=null;if(s1.equals(s2)){System.out.println("NOTWORKING:'(");}但就我而言,我想比较两个数据库中的两个对象,这两个对象的属性可以为null...那么什么是比较两个属性的方法,知道我们不确定值是null还是填充。这个方法好不好?//WORKINGStrings1="test";Strings2="test";if(s1==s2||s1.equals(s2)){System.out.println("WORKING:

c# - 为什么默认 == 实现不调用 Equals?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhyReferenceEqualsand==operatorbehavedifferentfromEquals==操作符的默认实现是通过引用比较对象。因此,当您覆盖Equals(默认行为相同)时,您还必须指定==和!=运算符以便它们调用Equals(并在每个类中进行==和!=运算符不是虚拟的)。我的问题是为什么会这样?为什么==和!=通过引用而不是使用Equals来比较对象?我想这样一个根本的事情应该是有原因的。更新。评论:我假设==应该依赖于Equals(反之亦然),因为您可以在基类中覆盖Equals并在