常見的幾個註解
1、@targetapi
2、@requiresapi
3、@suppresslint
4、@suppresswarnings
我們在開發android中常常會遇到**提示異常,使用快捷鍵操作後,開發工具會自動給我們的**新增一些註解,那麼你真的了解這些註解嗎?下面我們對每個註解的解釋:
@targetapi(build.version_codes.*)或者@targetapi(*)
lint會按照api版本m以上掃瞄**,而不是project中指定的minsdkversion,可以使得高版本api在低版本sdk上lint不報錯。
如果只加這個註解,表明這段**只能在指定版本及以上的系統上執行,如果你執行在23以下的系統上,會出現異常!因為已經開發工具已經給予警告了,只是我們加了註解,警告被忽略了。
@requiresapi(api = *)
從官方的表述可以看出更推薦使用requiresapi替換targetapi。
該註解表示註解目標只能夠在指定的版本api及以上執行,消除高版本api在低版本sdk上的報錯,作用上和targetapi相同,只是在詞面上更清楚表達了這是乙個建議,而不僅僅是為了消除高版本api在低版本sdk上的報錯。
@suppresslint("newapi")
一般不建議使用!最直接暴力遮蔽指定名稱的報錯,newapi:calling new methods on older versions。
在xml中類似的做法有:
tools:ignore="scrollviewcount,uselessparent"
相比於@targetapi指定了版本號,suppresslint是一律遮蔽。當然還可以指定任何其他lint定義好的錯誤名稱。在settings中查詢inspections可以找到預先定義好的所有error、warning。對於多個錯誤,使用逗號隔開。
@suppresswarnings("")
常用取值:unchecked //未檢查的轉化,如集合沒有指定型別
unused //未使用的變數
resource //有泛型未指定型別
path //在類路徑,原檔案路徑中有不存在的路徑
deprecation //使用了某些不贊成使用的類和方法
fallthrough //switch語句執行到底沒有break關鍵字
serial //某類實現serializable 但是沒有定義serialversionuid 這個需要但是不必須的字段
rawtypes //沒有傳遞帶有泛型的引數
all //全部型別的警告
註解可以使用在許多地方,如:class、method、statement,分別對應由大到小不同的作用域類、方法、語句,作用域範圍越大,那麼效能損耗自然越大。
以上是針對我們日常開發中常用的註解的解釋,特記錄供自己學習!
SpringBoot中常見註解含義總結
restcontroller被稱為乙個構造型 stereotype 註解。它為閱讀 的開發人員提供建議。對於spring,該類扮演了乙個特殊角色。它繼承自 controller註解。4.0之前的版本,spring mvc的元件都使用 controller來標識當前類是乙個控制器servlet。使用這...
Android手機中常見的路徑
files 存放普通的檔案。share prefs 存放sharedpreferences設定的key value檔案的相關的資料 外儲存2.1 外儲存 外部儲存有兩種,一種是手機額外掛程式載的tf卡,一種是手機出廠的時候,已經嵌入到主機板的那種儲存卡。在手機上看到storage emulated ...
Android 中常見的小知識總結
知識是需要積累的,許多小知識只有經常看看,用起來才能得心應手,只有積累到一定程度,菜鳥才能騰飛!1 標題欄和工作列的隱藏和設定 標題欄和工作列的隱藏和設定主要有兩種 在xml檔案中進行配置 在專案的清單檔案androidmanifest.xml中,找到需要全屏或設定成無標題欄的activity,在該...