Android Notes思码逸问题处理记录

 更新时间:2022年10月10日 08:52:39   作者:贺大biu  
这篇文章主要介绍了Android Notes思码逸问题处理记录详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

从年初开始,我司便开始将思码逸作为了 OKR 必选项,从开始的抵触,到现在的坦然,也算是被锤之路...

简单附上对应问题解决的思路或者方式,以便于小伙伴类似直接操作。

个人对于思码逸的看法,其实多属于还是基于阿里一些规范,虽说有点繁琐,甚至有些许难受,长远来看,未尝不是一件好事儿。

点滴做起,基于思码逸,一起来改善自己代码吧~

先附上阿里编码指南:

p3c

Static non-final field names should comply with a naming convention

提示如下:

大概的意思就是静态非 final 命名不规范,这里直接追加 final 即可。

Jump statements should not be redundant

问题代码如下:

提示如下:

Jump statements such as return and continue let you change the default flow of program execution, but jump statements that direct the control flow to the original direction are just a waste of keystrokes.

Fix:

  • 独立出来,不满足条件直接 return 即可。

Deprecated code should be removed

问题代码如下:

提示如下:

  • 此规则旨在用作跟踪标记为已弃用的代码的一种方式。弃用的代码最终应该被删除。

Fix:

  • 历史包袱,只能看具体代码,具体分析,如果有替代则使用推荐的。(真是一句废话...

Unused method parameters should be removed

问题代码如下:

提示如下:

  • 未使用的参数具有误导性。无论传递给此类参数的值如何,行为都是相同的。

附上对应代码图:

当然以下是一些例外情况:

  • that are annotated with @javax.enterprise.event.Observes
  • in overrides and implementation methods
  • in interface default methods
  • in non-private methods that only throw or that have empty bodies
  • in annotated methods, unless the annotation is @SuppressWarning("unchecked") or @SuppressWarning("rawtypes"), in which case the annotation will be ignored
  • in overridable methods (non-final, or not member of a final class, non-static, non-private), if the parameter is documented with a proper javadoc.

[p3c]To judge the equivalence of floating-point numbers, == cannot be used for primitive types, while equals cannot be used for wrapper classes.

问题代码如下:

提示如下:

  • 浮点数之间的等值判断,基本数据类型不能用 == 来比较,包装数据类型不能用 equals 来判断

如何 Fix?

  • 本质理解为一个精度问题,例如某些情况下 0.1 和 0.111 是相等的。

只需要将原本的 == 替换为 Float.compare(a,b) == 0 即可。

Others 知识点回顾:

回顾基本数据类型和包装类型:

基本类型包装类型
booleanBoolean
charCharacter
intInteger
byteByte
shortShort
longLong
floatFloat
doubleDouble

而它们之间区别如下:

  • 基本类型均有默认值,而包装类型初始化则是 NULL。也就是说基本类型可以用直接使用,而包装类型必须实例化后才可以使用;
  • 包装类型实际是对象的引用,new 一个包装类型的时候,实际上生成了一个指针指向此对象,而基本类型则事直接存储数据值;

这里额外回顾下 == 和 equals 区别吧:

  • == 对于基本类型来说是比较值,对于引用类型来说则是比较引用地址;
  • equals 默认情况下是比较引用地址,只是很多类重写了 equals 方法,比如 String、Integer 等把它变成了比较值,所以说一般情况下 equals 比较的是值是否相等。

THK

以上就是Android Notes思码逸问题处理记录的详细内容,更多关于Android Notes思码逸问题处理的资料请关注脚本之家其它相关文章!

相关文章

  • Android ListView的item中嵌套ScrollView的解决办法

    Android ListView的item中嵌套ScrollView的解决办法

    有时候,listview 的item要显示的字段比较多,考虑到显示问题,item外面不得不嵌套ScrollView来实现,纠结怎么解决此问题呢?下面小编给大家分享下Android ListView的item中嵌套ScrollView的解决办法,感兴趣的朋友一起看看吧
    2016-10-10
  • Flutter 底部弹窗如何实现多项选择

    Flutter 底部弹窗如何实现多项选择

    在Flutter中提供了一个showModelBottomSheet方法用于弹出底部弹窗,本篇基于这个方法介绍实现底部弹窗多选的思路和方式。
    2021-06-06
  • Android登录代码MVP架构详解

    Android登录代码MVP架构详解

    这篇文章主要为大家详细介绍了Android登录代码MVP架构的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Android中的Bitmap缓存池使用详解

    Android中的Bitmap缓存池使用详解

    这篇文章主要介绍了Android中的Bitmap缓存池使用详解,本文主要目的是讲解如何使用缓存来提高UI的载入输入和滑动的流畅性,需要的朋友可以参考下
    2015-01-01
  • Android开发SavedState Jetpack状态保存利器

    Android开发SavedState Jetpack状态保存利器

    这篇文章主要为大家介绍了Android开发SavedState Jetpack状态保存利器使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android 6.0调用相机图册崩溃的完美解决方案

    Android 6.0调用相机图册崩溃的完美解决方案

    这篇文章主要介绍了Android 6.0调用相机图册崩溃的完美解决方案,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Android实现歌词渐变色和进度的效果

    Android实现歌词渐变色和进度的效果

    这篇文章主要介绍了Android实现歌词渐变色和进度的效果的相关资料,需要的朋友可以参考下
    2016-03-03
  • 基于Android实现保存图片到本地并可以在相册中显示出来

    基于Android实现保存图片到本地并可以在相册中显示出来

    App应用越来越人性化,不仅界面优美而且服务也很多样化,操作也非常方便。通过本篇文章给大家介绍基于Android实现保存图片到本地并可以在相册中显示出来,对android保存图片相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • Android画中画窗口开启方法

    Android画中画窗口开启方法

    Android8.0 Oreo(API Level26)允许活动启动画中画Picture-in-picture(PIP)模式。PIP是一种特殊类型的多窗口模式,主要用于视频播放。PIP模式已经可用于Android TV,而Android8.0则让该功能可进一步用于其他Android设备
    2023-01-01
  • android开发教程之switch控件使用示例

    android开发教程之switch控件使用示例

    这篇文章主要介绍了android开的switch控件使用示例,需要的朋友可以参考下
    2014-04-04

最新评论