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

正文內(nèi)容

手動實現(xiàn)ioc框架-wenkub

2023-07-10 07:05:37 本頁面
 

【正文】 Processor,實現(xiàn)三個方法:getSupportedAnnotationTypes:獲取注解支持的類型,在此,我們支持BindView,沒有什么疑問getSupportedSourceVersion:指定使用的java版本,一般默認(rèn)支持返回最新,默認(rèn)此寫法,沒什么問題。 }}為了方便瀏覽,暫時刪去了一些代碼。 return annotationTypes。 mElementUtils = ()。 private Types mTypeUtils。javac命令中,(后面再說),這樣運行javac命令之前,javac會調(diào)用jar,通過這種特性訂制一些我們想實現(xiàn)的功能。如下:Retention()Target()public interface BindView { int value()。通過編譯器生成代碼的大致流程如下:編寫Modul:iocannotation,該工程主要定義注解BindView用以修飾變量。畢竟反射很影響效率。 //代碼注入 (this)。如何使用使用方式和Butterknife相似,通過注解BindView標(biāo)識控件,(this)實現(xiàn)代碼的注入。直到接觸了Xutils框架,發(fā)現(xiàn)竟然可以使用注解的方式,優(yōu)雅的干掉了findViewById方法,當(dāng)時真是驚為天人。后來遇到了Butterknife之后,發(fā)現(xiàn)不僅能夠通過實現(xiàn)findViewById方法,甚至連setOnClickListener,getString(),getResource()方法,都能通過一行注解的方式快速的實現(xiàn)。public class MainActivity extends AppCompatActivity { // 通過注解綁定控件 BindView() TextView textView。 (123)。通過編譯器生成代碼實現(xiàn):在我們運行Java代碼的時候,然后運行class文件,那么我們能不能夠在編譯時期,根據(jù)我們的注解生成findViewById等方法,這樣我們就能夠在運行期查找控件。編寫Modul:iocpiler,該工程為最終會打成jar包,主要是在javac編譯時期根據(jù)注解生成注入代碼的相關(guān)類編寫Modul:iocapi,(),調(diào)用代碼注入的方法。}該注解主要有兩個功能:在Activity中修飾變量,用以標(biāo)識需要findViewById的相關(guān)控件。那么看一下該模塊的關(guān)鍵類IocProcessorAutoService()public class IocProcessor extends AbstractProcessor { // 文件相關(guān)的輔助類,生成JavaSouceCode private Filer mFileUtils。 Override public synchronized void init(ProcessingEnvironment processingEnvironment) { (processingEnvironment)。 mMessager = ()。 } /** * 指定使用的java版本,一般默認(rèn)支持返回最新 * return */ Override public SourceVersion getSupportedSourceVersion() { return ()。首先在類的聲明上,我們添加了一個注解AutoService。process:處理注解的主要方法,主要在此方法中實現(xiàn)對相關(guān)類的處理。 for (Element element : elements) { // 檢查element的類型 if (!checkAnnotationValid(element, )) { return false。 // 類信息 ProxyInfo proxyInfo = (qualifiedName)。 int id = ()。 Writer writer = ()。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1