This error means that there is ambiguity in the method invocation, let's look at the following example:
Assertequals (10L, (Long) 10);
The compiler will quote the method Assertequals (object, object) is ambiguous for the type assert error;
10L is a long, and (long) 10 is a long type. and Assertequals () is an overloaded method in which there is
Assertequals (Object,object)
Assertequals (long, long)
So here's the problem, when we call this method,
Assert (10L, (Long) 10);
The compiler would be embarrassed to say that in the first place all overloaded methods are not compliant.
But because long can be automatically converted (autobox) into long, it can be understood that you want to call Assertequals (Long,long);
But 10L and (Long) 10 are all Object types, so it makes sense to call Assertequals (Object,object).
So there will be ambiguity.
Workaround: The two parameters of Asserteuqls () must be of the same type, so that you can uniquely identify an overloaded method.
The method Assertequals (object, object) is ambiguous for the type assert workaround