真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在Android中對SDK進(jìn)行封裝時需要用到哪些注解

在Android中對SDK進(jìn)行封裝時需要用到哪些注解?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),大英企業(yè)網(wǎng)站建設(shè),大英品牌網(wǎng)站建設(shè),網(wǎng)站定制,大英網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,大英網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

一、IntDef與StringDef

我們有時候會使用int常量或者String常量來代替枚舉, 特別在你編寫SDK的時候,你可以通過IntDef或者StringDef來限制接口可接受的參數(shù)。

比如,有一個 disableChannel的接口,用來關(guān)閉指定的channel 。 我們可以先定義自己的注解@RequirePayChannel

public static final int CHANNEL_UNIONPAY = 0x11000;
public static final int CHANNEL_ALIPAY = 0x12000;
public static final int CHANNEL_WECHAT = 0x13000;
@Retention(RetentionPolicy.SOURCE)
@IntDef({CHANNEL_UNIONPAY,CHANNEL_ALIPAY,CHANNEL_WECHAT})
public @interface RequirePayChannel {}

這樣,你便可以通過@RequirePayChannel來指定disableChannel()的可接受參數(shù)

public void enableChannel(@RequirePayChannel int channel) {
 // do something
}

這樣,一些IDE還會自動提供給你建議參數(shù)。如果填入指點范圍之外的參數(shù),將會出現(xiàn)錯誤提示并無法編譯通過。

在Android中對SDK進(jìn)行封裝時需要用到哪些注解

值得一說的是, 在這里,我們使用到了@Retention(RetentionPolicy.SOURCE) 。 它指定了編譯器在處理Animation時候的處理方法。 默認(rèn)編譯器會將常量替換成對應(yīng)的數(shù)值,如果沒指定該注解,你編譯完成后將得到這樣的class文件:

在Android中對SDK進(jìn)行封裝時需要用到哪些注解

這樣會導(dǎo)致IDE不能提示到有意義的信息。并且一定要指定為特定的int數(shù)值,否則也無法編譯通過。

在Android中對SDK進(jìn)行封裝時需要用到哪些注解

所以,應(yīng)該指定Retention讓編譯器不對該注解做額外的優(yōu)化處理。

二、DrawableRes, StringRes 與 DimenRes

當(dāng)我們在編寫指定資源文件的接口時,可以通過資源注解來指定該方法接受的資源類型。 指定錯誤的資源將不能編譯通過。 下面代碼中,我們使用@DrawableRes來表明setLogo方法只支持Drawable資源的ID。

public void setLogo(@DrawableRes int resurceId) {
 // do something
}

當(dāng)我們提供錯誤的資源,IDE將會報錯。

在Android中對SDK進(jìn)行封裝時需要用到哪些注解

@StringRes @DimenRes 的使用方法也類似。

三、NonNull 與 Nullable

將一個空值傳入一個方法中可能引發(fā)潛在的Crash。 我們應(yīng)該極力避免這種情況, @NonNull 可以指定參數(shù)是否接受空值,當(dāng)我們傳入一個空值的時候,IDE會給出響應(yīng)的警告。 我們可以這樣使用它:

public void setContext(@NonNull Context context) {
 // do something
}

當(dāng)我們對其傳入一個空值的時候,將會顯示警告(但代碼仍然能通過編譯)

在Android中對SDK進(jìn)行封裝時需要用到哪些注解

@Nullable 用于修飾參數(shù)或者方法的返回值可能為空,提醒開發(fā)者主要空值檢查。

@Nullable
public Context getContext() {return null;}

在Android中對SDK進(jìn)行封裝時需要用到哪些注解

關(guān)于在Android中對SDK進(jìn)行封裝時需要用到哪些注解問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


標(biāo)題名稱:在Android中對SDK進(jìn)行封裝時需要用到哪些注解
鏈接地址:http://weahome.cn/article/pgisgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部