gpt4 book ai didi

java - Type 中的方法不适用于 varargs 方法升级到 Java 1.8 的参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:31 25 4
gpt4 key购买 nike

我在我的项目中使用 Mocikto 框架(版本 1.9.5)使用 Java 1.7 进行单元测试,现在我正在迁移我的项目以使用 Java 1.8 构建和运行.

在我的一个单元测试中,我试图模拟以下方法

public <T> List<T> myMethod(final String sql, final MyMapper<T> MyMapper, final Argument... args) 

用这段代码

String learningId = "testLeaId";
String catalogId = "testCatId";
List<String> returnList = new ArrayList<String>();
returnList.add(catalogId);
when(myService.myMethod(Mockito.anyString(), Mockito.any(MyMapper.class), (Argument[]) Mockito.anyVararg())).thenReturn(returnList);

现在,当我在我的 pom.xml 中将我的 Java 版本升级到 1.8 时,此代码在 Java 1.7 上工作正常,我收到以下错误...

[ERROR] The method myMethod(String, MyMapper<T>, Argument...) in the type MyService is not applicable for the arguments (String, MyMapper, Argument)
C:\somepath\MyDaoTest.java:59

谁能帮我解决这个错误?谢谢

最佳答案

在 Java 8 中,类型推断得到了改进,因此您应该能够更改

Mockito.any(MyMapper.class)

Mockity.any()

例如。 (假设您使用的是最新版本的 Mockito 本身)

然后你可以发现...... anyVarArg()deprecated ,并为此使用 any()!

关于java - Type 中的方法不适用于 varargs 方法升级到 Java 1.8 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555707/

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