Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何绕过checker framework type.invalid错误?_Java_Checker Framework - Fatal编程技术网

Java 如何绕过checker framework type.invalid错误?

Java 如何绕过checker framework type.invalid错误?,java,checker-framework,Java,Checker Framework,我们已经编写了一个库,在引入Checker框架NullnessChecker来验证其代码之后,它无法按预期编译。我已经修复了所有明显的错误,但这一个我不知道如何修复 下面是违规函数的签名: private static @Nullable char[] getChars(char ch) 以及发生错误的呼叫站点: @Nullable char[] replacement = getChars( string.charAt( index ) ); 有人能告诉我如何让检查者接受这个吗?在我看来,

我们已经编写了一个库,在引入Checker框架NullnessChecker来验证其代码之后,它无法按预期编译。我已经修复了所有明显的错误,但这一个我不知道如何修复

下面是违规函数的签名:

private static @Nullable char[] getChars(char ch)
以及发生错误的呼叫站点:

@Nullable char[] replacement = getChars( string.charAt( index ) );
有人能告诉我如何让检查者接受这个吗?在我看来,这似乎是正确的代码

编辑

错误:

[type.invalid] [@Initialized, @Nullable] may not be applied to the type "@Initialized @Nullable char"
错误消息

[@Initialized, @Nullable] may not be applied to the type "@Initialized @Nullable char"
如果是这样的话,情况会更清楚

@Nullable may not be applied to the type "char"
问题在于char是一种基本类型。谈论@Nullable char或@NonNull char是没有意义的。空值仅适用于对象非基元类型。初始化也是如此

如果要指定一个可为null的char数组,即变量替换为null或char数组,请按以下方式写入:

char @Nullable [] replacement = ...;
如果你写信

 @Nullable char [] replacement = ...;
那就是@Nullable char的数组

这是Java类型注释语法的标准部分,并不特定于Checker框架。然而,这一点在世界范围内存在争议