在我们的项目中,我们刚刚开始使用 Google 的 Errorprone ( http://errorprone.info/ ) 在编译时进行额外的检查。
我已经设法消除了我们在项目中的所有剩余警告,但我被 ButterKnife 生成的 ViewBinding 类中生成的警告卡住了。确切地说,问题的出现是因为我创建了一个自定义视图,该视图使用泛型允许它在不同的 Number 类型上工作。
class MyCustomView<T extends Number> {
...
}
在 XML 布局文件中,该视图的一个实例放置在没有选择的数字类型的情况下,因为它不可能在那里 afaik。然后,在我们的一个片段中,我使用 ButterKnife 获得了对该视图的引用:
@BindView(R.id.customview)
protected MyCustomView<Integer> customView;
运行容易出错时,这会导致以下警告:
Warning:(42, 59) [unchecked] unchecked conversion
required: MyCustomView<Integer>
found: MyCustomView
我完全理解此警告的含义,但我看不到无需删除自定义视图中的泛型即可摆脱它的方法。使用 @SuppressWarnings 注释来注释片段中的成员字段也没有帮助。
所以我想知道是否有人知道如何解决这个问题?我可以以某种方式禁用生成代码中的检查吗?或者只是在名称中包含“ViewBinding”的文件上?或者 ButterKnife 是否可能需要进行一些调整以允许 Errorprone 忽略这些警告?
我会很高兴有任何帮助!谢谢!