草庐IT

Wfloat-equal

全部标签

java - String.isEmpty() 和 String.equals (""之间的区别)

我创建了一个“颜色选择器”,其中包含用户定义rgb值的三个文本框。要检查输入的值是否正确(仅0-255之间的数字),我使用以下内容:publicColorgetColor(){if(tfRed.getText().equals("")||tfGreen.getText().equals("")||tfBlue.getText().equals("")){returnnewColor(0,0,0,0);}else{if(tfRed.getText().matches("\\d+")&&tfGreen.getText().matches("\\d+")&&tfBlue.getText().

java - hashCode/equals 合约的 JUnit 理论

以下类用作equals/hashCode合约的通用测试器。它是本地测试框架的一部分。你怎么看?我如何(强)测试这门课?Junit理论很好用吗?类(class):@Ignore@RunWith(Theories.class)publicabstractclassObjectTest{//Foranynon-nullreferencevaluex,x.equals(x)shouldreturntrue@TheorypublicvoidequalsIsReflexive(Objectx){assumeThat(x,is(not(equalTo(null))));assertThat(x.eq

java - hashCode/equals 合约的 JUnit 理论

以下类用作equals/hashCode合约的通用测试器。它是本地测试框架的一部分。你怎么看?我如何(强)测试这门课?Junit理论很好用吗?类(class):@Ignore@RunWith(Theories.class)publicabstractclassObjectTest{//Foranynon-nullreferencevaluex,x.equals(x)shouldreturntrue@TheorypublicvoidequalsIsReflexive(Objectx){assumeThat(x,is(not(equalTo(null))));assertThat(x.eq

java - 为什么 Java 的 String.equals() 方法使用两个计数变量?

我只是在查看Java的String类的实现,下面的内容让我觉得很奇怪:publicbooleanequals(ObjectanObject){if(this==anObject){returntrue;}if(anObjectinstanceofString){StringanotherString=(String)anObject;intn=value.length;if(n==anotherString.value.length){charv1[]=value;charv2[]=anotherString.value;inti=0;while(n--!=0){//Herenisbe

java - 为什么 Java 的 String.equals() 方法使用两个计数变量?

我只是在查看Java的String类的实现,下面的内容让我觉得很奇怪:publicbooleanequals(ObjectanObject){if(this==anObject){returntrue;}if(anObjectinstanceofString){StringanotherString=(String)anObject;intn=value.length;if(n==anotherString.value.length){charv1[]=value;charv2[]=anotherString.value;inti=0;while(n--!=0){//Herenisbe

java - Java 中的 equals() 方法在 Long 数据类型上意外工作

让我们首先考虑Java中的以下表达式。Integertemp=newInteger(1);System.out.println(temp.equals(1));if(temp.equals(1)){System.out.println("Theifblockexecuted.");}所有这些语句都可以正常工作。毫无疑问。表达式temp.equals(1)按预期计算为true,因此执行ifblock中的唯一语句。现在,当我将数据类型从Integer更改为Long时,语句temp1.equals(1)被意外评估为false如下。Longtemp1=newLong(1);System.out

java - Java 中的 equals() 方法在 Long 数据类型上意外工作

让我们首先考虑Java中的以下表达式。Integertemp=newInteger(1);System.out.println(temp.equals(1));if(temp.equals(1)){System.out.println("Theifblockexecuted.");}所有这些语句都可以正常工作。毫无疑问。表达式temp.equals(1)按预期计算为true,因此执行ifblock中的唯一语句。现在,当我将数据类型从Integer更改为Long时,语句temp1.equals(1)被意外评估为false如下。Longtemp1=newLong(1);System.out

java - 在字符串文字上调用 equals

我只是稍微整理一下我的代码,就出现了这样一段:Stringsaving=getValue();if(saving!=null&&saving.equals("true")){//dosomething}然后我想用另一种方式来摆脱对null的检查:if("true".equals(saving)){//dosomething}它确实有效,但是这样做安全吗?我的意思是字符串文字存储在一个公共(public)池中,而new创建的字符串对象在堆上。但是常量池中的字符串也是对象吧?但它似乎仍然不是正确的做法,即使它使代码更短。 最佳答案 为了

java - 在字符串文字上调用 equals

我只是稍微整理一下我的代码,就出现了这样一段:Stringsaving=getValue();if(saving!=null&&saving.equals("true")){//dosomething}然后我想用另一种方式来摆脱对null的检查:if("true".equals(saving)){//dosomething}它确实有效,但是这样做安全吗?我的意思是字符串文字存储在一个公共(public)池中,而new创建的字符串对象在堆上。但是常量池中的字符串也是对象吧?但它似乎仍然不是正确的做法,即使它使代码更短。 最佳答案 为了

java - 可变集合应该覆盖equals和hashCode吗?

我只是想知道为可变集合覆盖equals和hashCode是否是个好主意。这意味着如果我将这样的集合插入到HashSet中,然后修改该集合,则HashSet将不再能够找到该集合。这是否意味着只有不可变的集合才应该覆盖equals和hashCode,还是Java程序员只能忍受这样的麻烦? 最佳答案 如果你的类应该表现得像一个值类型,你应该重写equals和hashCode。集合通常不是这种情况。(我真的没有太多Java经验。这个答案是基于C#的。) 关于java-可变集合应该覆盖equals