- 点击跳转=>Unity3D特效百例
- 点击跳转=>案例项目实战源码
- 点击跳转=>游戏脚本-辅助自动化
- 点击跳转=>Android控件全解手册
- 点击跳转=>Scratch编程案例
- 点击跳转=>软考全系列
?关于作者
专注于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/
?这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气?,日后定有一番大作为?!!!旁边有点赞?收藏?今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。文章来源:https://uudwc.com/A/Gdp2Z
温馨提示:点击下方卡片获取更多意想不到的资源。文章来源地址https://uudwc.com/A/Gdp2Z