java - 为什么 java 编译器对类文字给出 "rawtypes"警告?

标签 java parameterized-types

我正在使用 mockito 编写一些测试,并且我正在使用以下代码:

ArgumentCaptor<LinkedList> captor = ArgumentCaptor.forClass(LinkedList.class); 

除了“captor”是原始类型的警告之外,这编译和运行都很好,我应该用类似的东西替换它:

ArgumentCaptor<LinkedList<String>> captor = ArgumentCaptor.forClass(LinkedList<String>.class);

问题是 LinkedList.class doesn't exist , 所以赋值的右边永远不会编译。

假设抑制警告是不优雅的,有没有优雅的解决方案?如果不是,为什么编译会警告我一些我无法真正解决的问题?

最佳答案

有一个@Captor Mockito 中的注释旨在让您避免这样的警告。

使用它,您无需手动新建您的ArgumentCaptor。您可以只用注释声明它,然后调用 MockitoAnnotations.initMocks(this); “自动”创建你的俘虏。

而不是这个:

ArgumentCaptor<LinkedList> captor = ArgumentCaptor.forClass(LinkedList.class); 

这样做:

@Captor
ArgumentCaptor<LinkedList<String>> captor;

@Before
public void init() {
   // initialize fields annotated with Mockito annotations
   MockitoAnnotations.initMocks(this);  
}

关于java - 为什么 java 编译器对类文字给出 "rawtypes"警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27586880/

相关文章:

java - 使用流在java中进行内部连接

java - 为什么我的 Runnable Jar 文件不起作用

java - 使用 Java 参数化类型和多态性实现这种通用编程场景的方法

java - 为什么Java有这么多parse方法?

haskell - 如何为具有两个参数的类型实例 `Functor`?

java - 当 bean 类实现也扩展了某些参数化接口(interface)的参数化接口(interface)时,CDI bean 类型解析问题

java - 如果维护封闭类型引用,内部类会被GC吗?

java - MapReduce Hadoop 运行时字符串异常

java - 嵌入 Spring 的 ApacheDS

java - Java 中的未检查调用是什么?