专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,交流让学习不再孤单。
这个错误的原因在于,Kotlin语言进行了很多变量形式的检查,避免异常,这就会导致 Java 中一些普通的写法没有做判断,而出现判断异常。
比如 Java 中被 @NotNull 标识的变量。
要确保 Java 的 @NotNull 是不可为空 而 @Nullable 是可为空,在写Kotlin的时候就要弄清要不要带 ? 的变量。
如下案例:
//Kotlin语言调用:
adapterList[indexAdapter].notifyItemViewChange(adapterList[indexAdapter].treeModel.rootNode)
//Java语言:
public void notifyItemViewChange(@NotNull NodeModel<T> node) {
if (notifier != null) {
notifier.onItemViewChange(node);
}
}
@Override
public void onItemViewChange(NodeModel<?> nodeModel) {
//这里是会报错的 就是空指针NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter
adapter.changeItemHolder((TreeViewHolder) getTreeViewHolder(nodeModel));
}
改成下面这样就没问题了
@Override
public void onItemViewChange(NodeModel<?> nodeModel) {
if (adapter != null && nodeModel != null && getTreeViewHolder(nodeModel) != null)
adapter.changeItemHolder((TreeViewHolder) getTreeViewHolder(nodeModel));
}
其实只要有良好的编码习惯,平时业务逻辑会进行各种前提判断都会避免此类的问题。
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。