2013-09-15 3 views
3

Когда я компилирую мой код с The Checker Framwork он жалуется:Несовместимые типы в аргументе

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

для первого аргумента:

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

Я знаю, что DatabaseMetadata.getColumns() позволяет нулевой каталог (первый аргумент) , Как я могу рассказать о Framework Checker?

ответ

1

Как ответил Гили, вы можете использовать stub-files но, если вы нашли недостающее/неправильный аннотацию в JDK, пожалуйста, сообщите об этом в список рассылки Checker Framework [email protected] или сообщить об этом как вопрос в issue tracker.

С каждой версией Annotated JDK поставляется с Checker Framework. Он используется исключительно для извлечения аннотаций для общих методов в JDK. Он используется автоматически при использовании Checker Framework.

Эта аннотация была включена после выпуска Checker Framework версии 1.8.0.

0

Я не знаком с этой картой; он уважает @SuppressWarnings в интересующем вас контексте?

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

+0

Да, но я хотел получить более мелкое решение (а также я хотел бы избежать необходимости @SuppressWarnings несколько раз для одной и той же проблемы для нескольких файлов. В итоге я узнал о [заглушающих файлах] (http: // stackoverflow.com/a/18809315/14731), и они, похоже, работают. – Gili

0

В разделе Annotating Libraries пишут авторы Вы можете либо предоставить stub-files или переписать файлы классов в вопросе.

Я закончил с использованием файлов-заглушек, так как им стало легче начать работу.