IntelliJ Idea对我的测试用例中的一个语句发出以下警告。
警告:为varargs参数创建未经检查的泛型数组
编译器发出未经检查警告的位置
我所做的就是:
ervice.some方法(id)). thenThrow(AcCountNotFoundException.class)
实现这一点的更好方法可能是:
when(someService.someMethod(id)).thenThrow(new AccountNotFoundException());
然后编译器应该正确推断类型。
如果某项服务。someMethod(id)具有返回类型void,您可以执行以下操作:
doThrow(new AccountNotFoundException()).when(someService).someMethod(id);
请使用然后使用throw
参考官方Mockito文档中的示例。文件在这一点上非常清楚。
您还可以检查以下非常相似的StackOverflow问题(如果不是完全重复):
如何模拟和断言抛出的异常
问题内容: 我已将Netbeans设置为在我的Java代码中显示未经检查的警告,但是我无法理解以下几行的错误: 给出: 方法来源: 到底出了什么问题,我想如何解决呢?因为我认为在代码中留下未经检查的警告不是一个好主意? 忘了提,但我使用的是Java 7。 编辑 :我现在也看到该方法具有以下内容: 问题答案: 如上面的janoh.janoh所述,Java中的varargs只是数组的语法糖,以及在调用
我大致了解什么是类型擦除以及为什么我们会遇到未经检查的警告。但是,我不明白为什么在以下情况下只发出一个未经检查的警告: 不幸的是,两个接听电话都与大小写子句匹配。编译器确实为第一个子句发出了警告: 警告:未检查类型模式列表[Double]中的非可变类型参数Double,因为它已被擦除消除。 我知道TypeTag[T]可以用来实现更好的类型安全。但是我在这里关心的是为什么没有针对第二个case子句发
问题内容: 不知何故,我的旧问题已关闭,因此我打开了一个新问题: 我正在使用Java泛型从SQL查询中实现泛型双向Hash Map。它应该能够来回映射String,Integer对的任何组合。应该这样使用: 当然应该可以创建一个pm(Integer,Integer)等等。 我选择地图的实现如下所示(没有getter …): 我没有编译器错误,而且我很确定,它将以这种方式工作。但是我在“ getIn
我不明白为什么我收到以下代码的警告: 未选中对<code>isAssignableFrom(类)的调用 当我使用< code>isInstance方法时(根据我的理解,它提供相同的结果),我没有得到警告:
假设我有一个map。现在我只想从中获取条目并创建一个新的map与这些条目。 我正在尝试做以下事情: 这似乎可行,但我得到了一个警告:类型模式(String,Int)中的非变量类型参数字符串未选中,因为它已被擦除消除。 我怎样才能摆脱警告?