参数中的类型不兼容

时间:2013-09-15 04:47:01

标签: java bean-validation checker-framework

当我用The Checker Framwork编译我的代码时,它会抱怨:

incompatible types in argument.
  found   : null
  required: @NonNull String

第一个参数:

ResultSet rs = connection.getMetaData().getColumns(null, schemaName, tableName, null)

我知道DatabaseMetadata.getColumns()允许空目录(第一个参数)。如何告诉Checker Framework?

3 个答案:

答案 0 :(得分:1)

正如Gili回答的那样,您可以使用stub-files但是,如果您在JDK中发现缺少/不正确的注释,请将其报告给Checker Framework邮件列表checker-framework-discuss@googlegroups.com 或将其报告为问题issue tracker

每次发布​​时,Annotated JDK都与Checker Framework捆绑在一起。它仅用于检索JDK中常用方法的注释。使用Checker Framework时会自动使用它。

自Checker Framework 1.8.0发布以来,此注释已包含在内。

答案 1 :(得分:0)

我不熟悉那个框架;它在您感兴趣的上下文中是否尊重@SuppressWarnings?

https://checkerframework.org/manual/#suppressing-warnings-nullness

答案 2 :(得分:0)

Annotating Libraries部分中,作者写道,您可以提供stub-files或重写相关的课程文件。

我最终使用存根文件,因为它们似乎更容易上手。