[FIXED] Java JUnit: Die Methode X ist mehrdeutig für Typ Y

Ausgabe

Ich hatte einige Tests, die gut funktionierten. Dann habe ich es in ein anderes Paket verschoben und erhalte jetzt Fehler. Hier ist der Code:

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"));
    }

Die Fehlermeldung ist diese:

Die Methode assertEquals(Object, Object) ist für den Typ JGraphtUtilitiesTest mehrdeutig

Wie kann ich das beheben? Warum ist dieses Problem aufgetreten, als ich die Klasse in ein anderes Paket verschoben habe?

Lösung

Die Methode assertEquals(Object, Object) ist mehrdeutig für den Typ …

Dieser Fehler bedeutet, dass Sie ein doubleand und Doublean eine Methode übergeben, die zwei unterschiedliche Signaturen hat: assertEquals(Object, Object)und assertEquals(double, double)beide aufgerufen werden können, dank Autoboxing.

Um die Mehrdeutigkeit zu vermeiden, stellen Sie sicher, dass Sie entweder callen assertEquals(Object, Object)(durch Passieren von zwei Doubles) oder assertEquals(double, double)(durch Passieren von zwei Doubles).

In Ihrem Fall sollten Sie also Folgendes verwenden:

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

Oder:

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


Beantwortet von –
Pascal Thivent


Antwort geprüft von –
Dawn Plyler (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like