调用不';不接受来自kotlin的null
IDEA社区2017.1.2,JRE 1.8,Kotlin 1.1.2-2 我有一些Java方法,位于libGdx中,没有任何关于其可空性的注释,例如:调用不';不接受来自kotlin的null,kotlin,nullable,Kotlin,Nullable,IDEA社区2017.1.2,JRE 1.8,Kotlin 1.1.2-2 我有一些Java方法,位于libGdx中,没有任何关于其可空性的注释,例如: public void render (final RenderableProvider renderableProvider) { renderableProvider.getRenderables(renderables, renderablesPool); 正如我们所看到的,参数不能为null。但是,因为没有任何东西表明它不是nul
public void render (final RenderableProvider renderableProvider) {
renderableProvider.getRenderables(renderables, renderablesPool);
正如我们所看到的,参数不能为null。但是,因为没有任何东西表明它不是null参数,所以Kotlin很乐意在RenderableProvider?
中传递null。如何让Kotlin在编译时检查我应该传递的是RenderableProvider
,而不是RenderableProvider?
我已经读过,但是没有“指定自定义Kotlin签名”,如果我将renderableProvider
注释为@NotNull
没有任何更改,Kotlin仍然允许null
我甚至试着用XML中的
javax.annotation.Nonnull
手动替换org.jetbrains.annotations.NotNull
,但这没有什么区别——代码编译和使用NPE崩溃。外部注释是无效的。不幸的是,您必须使用fork libgdx并对其中的方法进行注释,否则将无法解决此问题。您可以将其包装在扩展函数中,然后仅将其用于渲染:
fun RenderClass.renderSafe(renderProvider: RenderableProvider) =
this.render(renderProvider)
现在您不能传递null