标签: deepequals

在Java 7上的equals()和deepEquals()

方法描述说:

如果参数彼此非常相等则返回true,否则返回false ... 等于通过使用第一个参数的equals方法确定.

哪个(对我来说)表明,如果使用equals()方法,它们维护引用的每个对象也相等,则对象非常相等.他们所参考的每个物体也是平等的.并..

那么...... equality is determined by using the equals method of the first argument.

这有什么不同.equals()?假设我们恰当地描述了equals,对象等于另一个对象,对象的每个字段也等于它.

能否请您提供说明之间的差别的例子Objects.deepEquals()Objects.equals()

equality java-7 deepequals

13
推荐指数
2
解决办法
1万
查看次数

如何用should.js做一个deepEqual断言?

我试图用should.js(最新版本)做一个deepEqual断言但没有取得任何成功.我可以让事情与之合作,equal但不是deepEqual.事实上,我发现没有deepEqual方法.

这是我尝试过的:

> require('should')
{...}
> > var x = Number(8)
undefined
> x.should.equal(8)
{ obj: 8 }
> x.should.equal(9)
AssertionError: expected 8 to equal 9
at ....
> x.should.deepEqual(8)
TypeError: Object #<Object> has no method 'deepEqual'
Run Code Online (Sandbox Code Playgroud)

很公平.现在看should,我看到它是一个吸气剂:

> Object.getOwnPropertyDescriptor(Object.prototype, 'should')
{ get: [Function],
  set: [Function],
  enumerable: false,
  configurable: true }
Run Code Online (Sandbox Code Playgroud)

既然它是一个吸气剂,我该如何检查其键?这几乎有效:

> Object.keys(Object.prototype.should)
[ 'obj' ]
Run Code Online (Sandbox Code Playgroud)

但后来我明白了

> Object.getOwnPropertyDescriptor(should.obj)
{ value: undefined,
  writable: false,
  enumerable: false,
  configurable: false }
Run Code Online (Sandbox Code Playgroud)

所以我现在很困惑.我想知道会发生什么事情should …

javascript node.js should.js deepequals

10
推荐指数
1
解决办法
3237
查看次数

检查两个java对象的Deep Equal的最快捷有效的方法是什么?

我有两个java对象,其byte[]字段大小为数百万.检查这些java对象的Deep Equal的最快捷有效的方法是什么?

样本实体:

@Entity
public class NormalBook
{

  @Id
  private String bookId;

  @Column
  private String title;

  @Column
  private byte[] pdfFile;

  //setters and getters

  }
Run Code Online (Sandbox Code Playgroud)

注意:我正在为ORM工具执行此操作,基本上我正在使用Persistence Context中存在的对象检查对象(处于托管状态).

java deepequals

5
推荐指数
1
解决办法
1053
查看次数

ClojureScript与JavaScript对象完全相同

我遇到了如何在ClojureScript中比较两个JavaScript对象以实现深度相等的问题,因为(= var1 var2 var3 ...)仅适用于Clojure/ClojureScript集合和数字.

(= (js-obj "a" 1) (js-obj "a" 1)) ;; => false
Run Code Online (Sandbox Code Playgroud)

当我写这个问题时,我找到了解决方案......但我会问并回答它可能会帮助别人.

javascript interop clojurescript deepequals

4
推荐指数
1
解决办法
243
查看次数

DeepEqual []接口{}

看下面的golang代码:

b := []byte(`["a", "b"]`)
var value interface{}
json.Unmarshal(b, &value)
fmt.Println(value)                 // Print [a b]
fmt.Println(reflect.TypeOf(value)) //Print []interface {}
var targetValue interface{} = []string{"a", "b"}
if reflect.DeepEqual(value.([]interface{}), targetValue) {
    t.Error("please be equal")
}
Run Code Online (Sandbox Code Playgroud)

是我期待太多了吗DeepEqual?阅读文档后,以下陈述强化了我的假设:它应该有效:

  • 当数组值对应的元素深度相等时,数组值深度相等。
  • 如果界面值具有深度相等的具体值,则它们是深度相等的。
  • 当 (...) 或其对应元素(直到长度)深度相等时,切片值深度相等。

我在这里缺少什么?

reflection go deepequals

1
推荐指数
1
解决办法
1611
查看次数