使用Android註解來改善代碼

來源:互聯網
上載者:User

標籤:android   註解   代碼   

昨晚看到一篇好文章,然後是英文的,所以決定翻譯分享給大家,這是原文連結:http://www.michaelevans.org/blog/2015/07/14/improving-your-code-with-android-support-annotations/

如果你還沒聽說過Android支援註解庫,那麼你將錯過可以協助你捕獲bug的一個輕便靈活的新包。在這個庫中包含了很多Java的註解,它將協助Android Studio為了可能出現的錯誤來檢查你的代碼,並且反饋通知給你。這個庫有相當多的註解,在此我只打算說明幾個,但是如果你需要其餘部分完整清晰的說明文檔,可以在這裡查看:check out the docs。


@NonNull 與 @Nullable

@NonNull 與 @Nullable 可能是支援註解中最基礎的,但是絕大多數情況下還是很有用的。 如果參數或者方法的傳回值可能是null為空白的,則以注釋一個參數或者方法來表示。目前Android Studio 給予了一個很好的警告提示,在我們做了一些不安全嚴謹的編碼操作的時候。

例如這樣:

修改後是這樣:


更贊的是:我們甚至可以像例子一樣更進一步的使用@CheckResult註解,來告訴我們該方法的傳回值類型是我們預計要使用的,而不是錯誤效果的方法:


@StringRes 與 @DrawableRes 等等

你是不是在TextView上調用setText方法,經常會出現莫名其妙的異常java android.content.res.Resources$NotFoundException: String resource ID #0x3039? 如果設定了一個整型數給setText,TextView會假定這個整型數是一個字串的資源id,為了設定string文本將會查詢這個整數。對於整型數是無效的資源id的問題,可以通過@StringRes 註解來補救。

public void setText(@StringRes int id) {     // Do something like getString(id), etc. }

如果你設定無效的字串資源id到setText方法裡,就會如顯示:

這個庫還為所有的資源類型都提供了相對應的資源註解:[email protected], @ColorRes,@InterpolatorRes, 等等。

@Keep
今天發現了一個新支援註解@Keep。根據註解文檔描述,這個註解還沒有串連到Gradle外掛程式中,但是當在混淆app的時候通過注釋方法和類可以被保留。
這個便捷的註解就通知混淆器保留對應的方法和類,就像這樣:

public class Example {     @Keep public void doSomething() {         // hopefully this method does something     }     ... }

如果你正在用的是appcompat-v7的包,就已經包括了 support-annotations的庫,那就開始愉快的使用吧!(逗比這麼簡單的文章還要你翻譯,臭不要臉的…Orz!)

以上check out the docs連結處需要翻牆才能開啟!

使用Android註解來改善代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.