码迷,mamicode.com
首页 > 其他好文 > 详细

The method assertEquals(Object, Object) is ambiguous for the type Assert解决办法

时间:2015-03-29 13:40:04      阅读:959      评论:0      收藏:0      [点我收藏+]

标签:junit   assertequals   ambiguous for the ty   java   解决办法   

该错误意思是方法调用存在歧义,先看下面这个例子:

assertEquals(10L, (Long)10);

编译器就会报出The method assertEquals(Object, Object) is ambiguous for the type Assert的错误;

10L是long型,而(Long)10是Long型。而assertEquals()是一个重载的方法,其中就有

assertEquals(Object,Object)

assertEquals(Long, Long)

那么问题来了,当我们调用下面这个方法时,

assert(10L, (Long)10);
编译器就会很为难,首先说所有的重载方法中,没有符合的。

但是因为long可以自动转换(autobox)成Long,所以说可以理解成你想调用assertEquals(Long,Long);

但是10L和(Long)10都是Object类型的,所以说你想调用assertEquals(Object,Object)也合情合理。

所以就会出现歧义了。


解决办法:assertEuqls()的两个参数必须是同一类型的,这样就可以唯一确定一个重载方法了。

The method assertEquals(Object, Object) is ambiguous for the type Assert解决办法

标签:junit   assertequals   ambiguous for the ty   java   解决办法   

原文地址:http://blog.csdn.net/kuaisuzhuceh/article/details/44726407

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!