Android?Notes思碼逸問題處理記錄
前言
從年初開始,我司便開始將思碼逸作為了 OKR 必選項,從開始的抵觸,到現(xiàn)在的坦然,也算是被錘之路...
簡單附上對應(yīng)問題解決的思路或者方式,以便于小伙伴類似直接操作。
個人對于思碼逸的看法,其實多屬于還是基于阿里一些規(guī)范,雖說有點繁瑣,甚至有些許難受,長遠(yuǎn)來看,未嘗不是一件好事兒。
點滴做起,基于思碼逸,一起來改善自己代碼吧~
先附上阿里編碼指南:
Static non-final field names should comply with a naming convention
提示如下:
大概的意思就是靜態(tài)非 final 命名不規(guī)范,這里直接追加 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
問題代碼如下:
提示如下:
- 此規(guī)則旨在用作跟蹤標(biāo)記為已棄用的代碼的一種方式。棄用的代碼最終應(yīng)該被刪除。
Fix:
- 歷史包袱,只能看具體代碼,具體分析,如果有替代則使用推薦的。(真是一句廢話...
Unused method parameters should be removed
問題代碼如下:
提示如下:
- 未使用的參數(shù)具有誤導(dǎo)性。無論傳遞給此類參數(shù)的值如何,行為都是相同的。
附上對應(yīng)代碼圖:
當(dāng)然以下是一些例外情況:
- 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.
問題代碼如下:
提示如下:
- 浮點數(shù)之間的等值判斷,基本數(shù)據(jù)類型不能用 == 來比較,包裝數(shù)據(jù)類型不能用 equals 來判斷
如何 Fix?
- 本質(zhì)理解為一個精度問題,例如某些情況下 0.1 和 0.111 是相等的。
只需要將原本的 == 替換為 Float.compare(a,b) == 0 即可。
Others 知識點回顧:
回顧基本數(shù)據(jù)類型和包裝類型:
基本類型 | 包裝類型 |
---|---|
boolean | Boolean |
char | Character |
int | Integer |
byte | Byte |
short | Short |
long | Long |
float | Float |
double | Double |
而它們之間區(qū)別如下:
- 基本類型均有默認(rèn)值,而包裝類型初始化則是 NULL。也就是說基本類型可以用直接使用,而包裝類型必須實例化后才可以使用;
- 包裝類型實際是對象的引用,new 一個包裝類型的時候,實際上生成了一個指針指向此對象,而基本類型則事直接存儲數(shù)據(jù)值;
這里額外回顧下 == 和 equals 區(qū)別吧:
- == 對于基本類型來說是比較值,對于引用類型來說則是比較引用地址;
- equals 默認(rèn)情況下是比較引用地址,只是很多類重寫了 equals 方法,比如 String、Integer 等把它變成了比較值,所以說一般情況下 equals 比較的是值是否相等。
THK
以上就是Android Notes思碼逸問題處理記錄的詳細(xì)內(nèi)容,更多關(guān)于Android Notes思碼逸問題處理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決Android Studio Design界面不顯示layout控件的問題
這篇文章主要介紹了解決Android Studio Design界面不顯示layout控件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android sqlite設(shè)置主鍵自增長的方法教程
這篇文章主要給大家介紹了關(guān)于Android sqlite設(shè)置主鍵自增長的方法教程,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-06-06Flutter pageview切換指示器的實現(xiàn)代碼
這篇文章主要介紹了Flutter pageview切換指示器的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Android進(jìn)程運行中權(quán)限被收回導(dǎo)致關(guān)閉的問題解決
在Android開發(fā)中我們可能會遇到這樣的問題,進(jìn)程還在運行著某些權(quán)限卻被收回了,這就導(dǎo)致進(jìn)程崩潰被迫關(guān)閉,本篇文章將帶你了解這個問題的發(fā)生與解決方法2021-10-10Android開發(fā)MediaCodec和lamemp3多段音頻截取拼接
這篇文章主要為大家介紹了Android開發(fā)使用MediaCodec和lamemp3實現(xiàn)多段音頻截取拼接的編程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04