android @nonnull的作用,@NonNull和@Nullable注释 – 它会影响Android的性能吗?
@NonNull和@Nullable注释会在运行时影响Android的性能吗?我的意思是他们只有支持LINT和其他工具来检测可能的错误的目的,所以他们可能/希望在编译期间被忽略.你有什么资料来证明这一点吗?
解决方法:
作为一个小实验,我在Android应用中创建了以下方法:
private void test(@NonNull Object o) {
o.toString();
}
编译项目,用ApkTool“解压缩”它并查看了smali文件:
.method private test(Ljava/lang/Object;)V
.locals 0
.param p1, "o" # Ljava/lang/Object;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.prologue
.line 22
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
.line 23
return-void
.end method
因此,Nonnull注释实际上并未在编译时从代码中删除.
我可以关闭Android studio中的检查,调用带有null作为参数的test-method并编译应用程序.然后它在o.toString()处遇到NullPointerExeption崩溃,但是没有提示VM实际上使用注释在运行时检查参数.正是拉尔托在他的回答中所说的.
我确实想知道VM是否能够这样做并且在使用null参数调用方法时抛出异常.
标签:android,annotations
来源: https://codeday.me/bug/20190528/1168744.html
android @nonnull的作用,@NonNull和@Nullable注释 – 它会影响Android的性能吗?相关推荐
- android的适配器作用,适配器在Android中的作用是什么?
适配器在Android中的作用是什么? 我想知道在Android环境中何时,何地以及如何使用适配器. 来自Android开发者文档的信息对我来说不够,我希望得到更详细的分析. 11个解决方案 39 v ...
- android @nonnull的作用,Android Studio错误的含义:未注释的参数会覆盖@NonNull参数
问题 我正在尝试使用Android Studio.在创建一个新项目并向create MyActivity类添加defaultonSaveInstanceState方法时,当我尝试将代码提交给Git时, ...
- android @nonnull的作用,Android Studio错误的含义:未注释的参数将覆盖@NonNull参数
除了其他的答案, @NonNull (和它的对手, @Nullable )注释注解一个字段,参数或方法的返回types. IntelliJ,因此Android Studio可以在编译时警告您可能的Nu ...
- android @nonnull的作用,Android:NullPointerException尽管@NonNull
我正在使用注释来确保参数不为null,假设这会导致编译器检查. public @Nullable ApplicationAccount accountForKey(@NonNull String ke ...
- Spring注解@NonNull作用 Spring注解@Nullable作用 Spring NonNull 注解作用 Spring Nullable注解作用
Spring注解@NonNull作用 Spring注解@Nullable作用 Spring NonNull 注解作用 Spring Nullable注解作用 一.概述 在看Spring源码的时候,经常 ...
- android 混淆规则作用,Android混淆规则
简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码 ...
- android布局的作用,Android UI布局经验总结
如何在Android中动态设置颜色透明?10%20%到100% Android布局分析工具HierarchyView Android使用include/merge/ViewStub优化布局 List的 ...
- 腾讯、网易云、字节跳动面试点总结—AMS在Android起到什么作用?
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官: AMS在Android起到什么作用,简单的分析下Android的源码 心理分析:这道题在发生在大多数场景下.面对这 ...
- Android服务模块作用,Android 9.0 AutotoMotive模块之CarService
Android 9.0 AutotoMotive模块之CarService Android 9.0 AutotoMotive模块之CarService 上一篇对Automotive模块的Vhal作了总 ...
最新文章
- 微信小程序界面跳转方法
- 推荐几款好用又免费的项目管理工具
- TCP释放连接的四次挥手过程
- lotus php,LotusPhp框架目录_PHP教程
- offset client scroll
- 【项目管理】项目问题诊断
- ambari删除脚本
- 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED
- c++builder提高批量动态创建panel的速度_骑行时影响速度的事项有哪些 怎样有效提高骑行速度 单车租赁信息...
- micropython是什么意思_MicroPython到底是啥-百度经验
- 数美科技-AI独角兽-NLP/语音/图像等岗位等你来~
- 海南省月降水量分布数据
- 云计算的小兄弟:雾计算和霾计算
- vue可以编辑发布多长的视频_vue视频的总时长是多少
- 域名解析不生效,提示“未使用阿里云解析”如何解决?
- redis主从、集群
- [读后感-Cayden原创] 读《1-2年纪,塑造孩子一生的关键》有感
- IBM Storwize V5000资源管理柜
- springboot配置文件不生效的原因
- python open找不到文件的原因_浅谈python 调用open()打开文件时路径出错的原因