gpt4 book ai didi

java - "The method x is ambiguous for the type"Mokito JUnit 错误

转载 作者:行者123 更新时间:2023-11-30 06:06:46 27 4
gpt4 key购买 nike

我有一个主类:-

class Main
{
String str = "";
protected String getStr(JavaRDD<String> obj)
{
return "Main";
}
}
class Child extends Main
{
String str = "";
protected String getStr(Dataset<Row> records )
{
return "Child";
}
}
//My test class :-

class mainTest extends Child
{
Child child;
@Test
public void testGetStr()
{
child = Mockito.mock(Child .class);
Mockito.when(child.getStr(anyObject())).thenCallRealMethod();//Compilation Error
}
}

我得到的错误是: The method getStr(Dataset<Row>) is ambiguous for the type Child

请让我知道此问题的解决方案,因为我无权更改 MainChild 类。当我模拟子类getStr()没有被调用。

最佳答案

看起来像Child并没有真正覆盖 getStr方法Main ,因为方法签名不同。

因此,编译器在调用Child.getStr(anyObject())时无法判断实际应该调用哪个方法。 。应该是getStr(Dataset<Row> records )或者应该是getStr(JavaRDD<String> obj)anyObject方法提供了一个与任何类匹配的对象。

我建议重命名其中一种方法,或使用 any(Dataset.class)这将告诉编译器使用 Child 的方法,像这样:

Mockito.when(child.getStr(any(Dataset.class))).thenCallRealMethod();

关于java - "The method x is ambiguous for the type"Mokito JUnit 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51135711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com