freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

手動實現(xiàn)ioc框架-全文預(yù)覽

2025-07-16 07:05 上一頁面

下一頁面
  

【正文】 類(含有注解BindView的類),并保存類信息到ProxyInfo中,同時保存被注解的成員變量到該ProxyInfo中,以Map的形式保存,鍵是注解的值,value是被注解的元素。 return false。 }自上而下分析:首先獲取被注解BindView修飾的元素,注意此時獲取的元素可能是TypeElement,VariableElement,ExecuteableElement等,不一定確定是成員變量,所以要做一層檢查。 ()。 } // 生成對應(yīng)的類 for (String key : ()) { ProxyInfo proxyInfo = (key)。 (qualifiedName, proxyInfo)。 TypeElement typeElement = (TypeElement) ()。 /** * 相當(dāng)于main 函數(shù),處理掃描,評估和處理注解的代碼以及生成java文件 * param set * param roundEnvironment 用于查詢包含特定注解的注解元素 * return */ Override public boolean process(Set? extends TypeElement set, RoundEnvironment roundEnvironment) { ()。而如果我們手動編寫jar的目錄很麻煩,所以Google提供了一個AutoService,用以直接實現(xiàn)這種目錄形式的jar包。 /** * 相當(dāng)于main 函數(shù),處理掃描,評估和處理注解的代碼以及生成java文件 * param set * param roundEnvironment 用于查詢包含特定注解的注解元素 * return */ Override public boolean process(Set? extends TypeElement set, RoundEnvironment roundEnvironment) { //.....關(guān)鍵處理代碼 return true。 // getCanonicalName 獲取規(guī)范的名字 (())。 mFileUtils = ()。 // 日志相關(guān) private Messager mMessager。編寫iocpiler模塊在之前我們提到過,該框架的原理是在編譯時期根據(jù)我們的要求生成注入的輔助代碼,那么如何生成,以何種規(guī)則生成,肯定是由我們來定義的。代碼實現(xiàn)根據(jù)上面的流程,開始實現(xiàn)框架編寫iocannotation模塊該模塊比較簡單,就是定義一個注解。因為雖然其使用的是注解,但在運行期其實質(zhì)仍是通過findViewById方法查找控件,相比于反射來說,大大的提高了性能。該方法雖然可以實現(xiàn),但對效率有著一定的影響。 setContentView()。于是便有了這篇博客,該篇博客主要實現(xiàn)了findViewById方法,雖然廣度不是很大,但他們的原理都是相同的。手動實現(xiàn)IOC框架自序在開發(fā)Android中,總要寫許多的findViewById方法,這無疑是一件非常痛苦的事情。當(dāng)時在使用過程中,感覺這種方式大大的提高了開發(fā)的效率,以及編碼的舒暢度,自己很有必要實現(xiàn)以下。 Override protected void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 }}實現(xiàn)原理實現(xiàn)方式有兩種通過反射實現(xiàn):如果對于反射有深入了解,則應(yīng)該清楚,我們可以通過反射獲取到該注解,并且獲取到該注解的值等等一系列的必須量,通過反射我們實現(xiàn)對控件的注入。結(jié)果當(dāng)然是可以的,本例就是使用這種方式。編寫Modul:app,測試工程。在iocpiler模塊中,用以檢索和獲取需要findViewById的控件。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1