Android?Notes思碼逸問題處理記錄
前言
從年初開始,我司便開始將思碼逸作為了 OKR 必選項(xiàng),從開始的抵觸,到現(xiàn)在的坦然,也算是被錘之路...
簡(jiǎn)單附上對(duì)應(yīng)問題解決的思路或者方式,以便于小伙伴類似直接操作。
個(gè)人對(duì)于思碼逸的看法,其實(shí)多屬于還是基于阿里一些規(guī)范,雖說有點(diǎn)繁瑣,甚至有些許難受,長(zhǎng)遠(yuǎn)來看,未嘗不是一件好事兒。
點(diǎ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:
- 獨(dú)立出來,不滿足條件直接 return 即可。
Deprecated code should be removed
問題代碼如下:

提示如下:
- 此規(guī)則旨在用作跟蹤標(biāo)記為已棄用的代碼的一種方式。棄用的代碼最終應(yīng)該被刪除。
Fix:
- 歷史包袱,只能看具體代碼,具體分析,如果有替代則使用推薦的。(真是一句廢話...
Unused method parameters should be removed
問題代碼如下:

提示如下:
- 未使用的參數(shù)具有誤導(dǎo)性。無論傳遞給此類參數(shù)的值如何,行為都是相同的。
附上對(duì)應(yīng)代碼圖:

當(dāng)然以下是一些例外情況:
- that are annotated with
@javax.enterprise.event.Observes - in overrides and implementation methods
- in interface
defaultmethods - in non-private methods that only
throwor 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.
問題代碼如下:

提示如下:
- 浮點(diǎn)數(shù)之間的等值判斷,基本數(shù)據(jù)類型不能用 == 來比較,包裝數(shù)據(jù)類型不能用 equals 來判斷
如何 Fix?
- 本質(zhì)理解為一個(gè)精度問題,例如某些情況下 0.1 和 0.111 是相等的。
只需要將原本的 == 替換為 Float.compare(a,b) == 0 即可。
Others 知識(shí)點(diǎn)回顧:
回顧基本數(shù)據(jù)類型和包裝類型:
| 基本類型 | 包裝類型 |
|---|---|
| boolean | Boolean |
| char | Character |
| int | Integer |
| byte | Byte |
| short | Short |
| long | Long |
| float | Float |
| double | Double |
而它們之間區(qū)別如下:
- 基本類型均有默認(rèn)值,而包裝類型初始化則是 NULL。也就是說基本類型可以用直接使用,而包裝類型必須實(shí)例化后才可以使用;
- 包裝類型實(shí)際是對(duì)象的引用,new 一個(gè)包裝類型的時(shí)候,實(shí)際上生成了一個(gè)指針指向此對(duì)象,而基本類型則事直接存儲(chǔ)數(shù)據(jù)值;
這里額外回顧下 == 和 equals 區(qū)別吧:
- == 對(duì)于基本類型來說是比較值,對(duì)于引用類型來說則是比較引用地址;
- equals 默認(rèn)情況下是比較引用地址,只是很多類重寫了 equals 方法,比如 String、Integer 等把它變成了比較值,所以說一般情況下 equals 比較的是值是否相等。
THK
以上就是Android Notes思碼逸問題處理記錄的詳細(xì)內(nèi)容,更多關(guān)于Android Notes思碼逸問題處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決Android Studio Design界面不顯示layout控件的問題
這篇文章主要介紹了解決Android Studio Design界面不顯示layout控件的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android sqlite設(shè)置主鍵自增長(zhǎng)的方法教程
這篇文章主要給大家介紹了關(guān)于Android sqlite設(shè)置主鍵自增長(zhǎng)的方法教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-06-06
Flutter pageview切換指示器的實(shí)現(xiàn)代碼
這篇文章主要介紹了Flutter pageview切換指示器的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Android進(jìn)程運(yùn)行中權(quán)限被收回導(dǎo)致關(guān)閉的問題解決
在Android開發(fā)中我們可能會(huì)遇到這樣的問題,進(jìn)程還在運(yùn)行著某些權(quán)限卻被收回了,這就導(dǎo)致進(jìn)程崩潰被迫關(guān)閉,本篇文章將帶你了解這個(gè)問題的發(fā)生與解決方法2021-10-10
Android開發(fā)MediaCodec和lamemp3多段音頻截取拼接
這篇文章主要為大家介紹了Android開發(fā)使用MediaCodec和lamemp3實(shí)現(xiàn)多段音頻截取拼接的編程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
Android開發(fā)中滑動(dòng)分頁功能實(shí)例詳解
這篇文章主要介紹了Android開發(fā)中滑動(dòng)分頁功能,結(jié)合實(shí)例形式詳細(xì)分析了Android滑動(dòng)分頁功能的具體步驟與相關(guān)實(shí)現(xiàn)技巧,代碼中備有詳盡的注釋便于理解,需要的朋友可以參考下2017-10-10

