Tag: 等于

如何快速检查数据传输两个对象在C#中具有相同的属性?

我有这些数据传输对象: public class Report { public int Id { get; set; } public int ProjectId { get; set; } //and so on for many, many properties. } 我不想写 public bool areEqual(Report a, Report b) { if (a.Id != b.Id) return false; if (a.ProjectId != b.ProjectId) return false; //Repeat ad nauseum return true; } 有没有更快的方法来testing只有属性具有相同的值(不需要一行代码或每个属性一个逻辑expression式的对象)? 切换到结构不是一个选项。

是否有一个Javareflection实用程序来深入比较两个对象?

我正在尝试为大型项目中的各种clone()操作编写unit testing,我想知道是否有一个现有的类可以接受两个相同types的对象,并进行深入比较,说他们是否相同?

在HashMap中了解equals和hashCode的工作原理

我有这个testing代码: import java.util.*; class MapEQ { public static void main(String[] args) { Map<ToDos, String> m = new HashMap<ToDos, String>(); ToDos t1 = new ToDos("Monday"); ToDos t2 = new ToDos("Monday"); ToDos t3 = new ToDos("Tuesday"); m.put(t1, "doLaundry"); m.put(t2, "payBills"); m.put(t3, "cleanAttic"); System.out.println(m.size()); } } class ToDos{ String day; ToDos(String d) { day = d; } public […]

在使用JPA和Hibernate时应该如何实现equals和hashcode

应该如何在Hibernate中实现模型类的equals和hashcode? 什么是常见的陷阱? 在大多数情况下,默认实现是否足够好? 有没有使用商业密钥的意义? 在我看来,在任何情况下都很难做到这一点,比如懒惰的抓取,身份证生成,代理等等。

如何检查我的string是否等于null?

我只想执行一些操作,如果我的string有一个有意义的值。 所以,我试了这个。 if (!myString.equals("")) { doSomething } 和这个 if (!myString.equals(null)) { doSomething } 和这个 if ( (!myString.equals("")) && (!myString.equals(null))) { doSomething } 和这个 if ( (!myString.equals("")) && (myString!=null)) { doSomething } 和这个 if ( myString.length()>0) { doSomething } 而且在所有情况下,尽pipe我的string是空的,但我的程序还是做了一些事情。 它等于null 。 那么,那有什么问题呢? 添加: 我find了问题的原因。 variables被声明为一个string,因此,赋给这个variables的"null"被转换为"null" ! 所以, if (!myString.equals("null"))作品。

等于(=)与LIKE

在使用SQL时,在WHERE子句中使用=而不是LIKE有什么好处? 没有任何特殊的操作符, LIKE和=是一样的,对吗?

null和空(“”)Javastring之间的区别

null和"" (空string)有什么区别? 我写了一些简单的代码: String a = ""; String b = null; System.out.println(a==b); // false System.out.println(a.equals(b)); // false 这两个语句都返回false 。 看来,我无法find它们之间的实际区别。

生成.equals()时比get instance()优先于instanceof的任何理由?

我使用Eclipse来生成.equals()和.hashCode() ,并且有一个标签为“使用'instanceof'来比较types”的选项。 默认情况下,此选项.getClass()选中,并使用.getClass()来比较types。 有没有什么理由我应该喜欢.getClass()通过instanceof ? 不使用instanceof : if (obj == null) return false; if (getClass() != obj.getClass()) return false; 使用instanceof : if (obj == null) return false; if (!(obj instanceof MyClass)) return false; 我通常检查instanceof选项,然后进入并删除“ if (obj == null) ”检查。 (这是多余的,因为null对象总是会失败instanceof )是否有任何理由是一个坏主意?

比较两个List <T>对象是否相等,忽略顺序

还有另一个列表比较问题。 List<MyType> list1; List<MyType> list2; 我需要检查它们是否具有相同的元素,而不pipe它们在列表中的位置。 每个MyType对象可能在列表中多次出现。 有一个内置的函数来检查这个吗? 如果我保证每个元素只在列表中出现一次,该怎么办? 编辑:伙计们感谢您的答案,但我忘了添加一些东西,每个元素的出现次数应该在两个列表上是相同的。

重写java equals()方法的怪癖

我遇到了一个有趣的(非常令人沮丧的)问题,就是今天的equals()方法导致了我认为是一个经过良好testing的类崩溃,并导致了一个我花了很长时间追踪的bug。 为了完整起见,我没有使用IDE或debugging器 – 只是老式的文本编辑器和System.out的。 时间非常有限,这是一个学校项目。 无论如何 – 我正在开发一个可以包含Book对象的ArrayList的基本购物车。 为了实现Cart的addBook(),removeBook()和hasBook()方法,我想检查Book是否已经存在于购物车中。 所以我走了 – public boolean equals(Book b) { … // More code here – null checks if (b.getID() == this.getID()) return true; else return false; } 所有的testing都很好。 我创build了6个对象并填充数据。 做很多添加,删除,有()操作购物车,一切工作正常。 我读过,你可以有等于(TYPE var)或等于(Object o){(CAST)var},但是假设既然它在工作,那么没有太大的关系。 然后我碰到一个问题 – 我需要在Book类中创build一个Book对象,只有它的ID。 没有其他数据将被input到它。 基本上如下: public boolean hasBook(int i) { Book b = new Book(i); […]