当前位置: 首页 > 面试题库 >

Java JUnit:方法X对于类型Y是不明确的

郭意
2023-03-14
问题内容

我的一些测试工作正常。然后,我将其移至其他程序包,现在出现错误。这是代码:

import static org.junit.Assert.*;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import org.jgrapht.Graphs;
import org.jgrapht.WeightedGraph;
import org.jgrapht.graph.DefaultWeightedEdge;
import org.jgrapht.graph.SimpleWeightedGraph;
import org.junit.*;

@Test
    public void testEccentricity() {
        WeightedGraph<String, DefaultWeightedEdge> g = generateSimpleCaseGraph();
        Map<String, Double> eccen = JGraphtUtilities.eccentricities(g);

        assertEquals(70, eccen.get("alpha"));
        assertEquals(80, eccen.get("l"));
        assertEquals(130, eccen.get("l-0"));
        assertEquals(100, eccen.get("l-1"));
        assertEquals(90, eccen.get("r"));
        assertEquals(120, eccen.get("r-0"));
        assertEquals(130, eccen.get("r-1"));
    }

错误消息是这样的:

对于类型JGraphtUtilitiesTest,方法assertEquals(Object,Object)是不明确的

我怎样才能解决这个问题?当我将类移至其他程序包时,为什么会发生此问题?


问题答案:

方法assertEquals(Object,Object)对于类型…

该错误的含义是,您正在将doubleand和传递给Double具有两个不同签名的方法:由于自动装箱assertEquals(Object, Object)assertEquals(double, double)两个都可以被调用。

为避免歧义,请确保调用assertEquals(Object, Object)(通过传递两个双打)或assertEquals(double, double)(通过传递两个双打)。

因此,在您的情况下,您应该使用:

assertEquals(Double.valueOf(70), eccen.get("alpha"));

要么:

assertEquals(70.0d, eccen.get("alpha").doubleValue());


 类似资料:
  • 我的代码片段如下所示 我收到的方法assertEquals(Object,Object)对于类型是不明确的。我不知道为什么我会得到它?

  • 这是我的一段插件代码。 我知道可能有很多错误,我可以自己处理它们。我无法处理的是 Eclipse(我的IDE)告诉我,getHealth()方法对于类型Player来说是不明确的。 我知道这可能是一个非常受欢迎的问题,因为Bukkit 1.6. x的发布,但没有一个搜索我可以理解的解决方案。 如果这确实是解决方案,您能帮助我了解我能做什么吗... 谢谢你。

  • 问题内容: 我正在使用代码: 它显示错误: 为什么没有代表? 问题答案: 有3种的方法接受一个引用类型- ,,。 通过时,所有3个都适用。方法重载规则更喜欢具有最特定参数类型的方法,因此不选择。 然后,编译器不能在前两个- 和- 之间进行选择,因为它不比- 更具体,反之亦然。 如果要选择特定的方法,请将null强制转换为所需的类型。 例如 :

  • 我有以下功能: 此代码给出了

  • 问题内容: 该蟒蛇风格指南建议对进口组这样的: 导入应按以下顺序分组: 标准库导入 相关第三方进口 本地应用程序/特定于库的导入 但是,它没有提及应如何布置两种不同的进口方式的内容: 对它们进行排序有多种方法(假设所有这些导入都属于同一组): 首先,然后 from x import xx import abc import def import x 首先,然后 import def import

  • 问题内容: 这里回答了类似的问题,但我认为它不能解决我的问题。 假设您具有以下结构: 而且,URL具有如下结构:,其中URL参数将传递给模板,如下所示: 在HTML模板中,我有以下内容: 现在,问题在于,由于不是该结构的一部分,所以我得到了错误..那么如何在内部访问? 问题答案: 点()的内容在调用后分配给,因此您可以使用进行访问(播放): 该行为记录在这里: 执行开始时,将设置为传递给的数据参数