我在android中看到類加載器的加載類,我有一個問題。如何在這個過程中識別同一個班級。我google的classloader的原理和找人說:如何在android中識別相同的類?
如果一個類有相同的類名,並具有相同的類加載器,這是一個相同的類。但我使用android studio,我定義了一個名爲的視圖,我在其他類中使用它,我發現有兩個類提示。一個是我的定義,另一個是系統類。
但基於父母模式類加載器,有正確的方式的系統類,如何理解它?
我很懷疑!
我在android中看到類加載器的加載類,我有一個問題。如何在這個過程中識別同一個班級。我google的classloader的原理和找人說:如何在android中識別相同的類?
如果一個類有相同的類名,並具有相同的類加載器,這是一個相同的類。但我使用android studio,我定義了一個名爲的視圖,我在其他類中使用它,我發現有兩個類提示。一個是我的定義,另一個是系統類。
但基於父母模式類加載器,有正確的方式的系統類,如何理解它?
我很懷疑!
但我使用Android [...],我定義了一個名爲「視圖」的類,我在其他類中使用它,我發現在提示中有兩個類。一個是[我的],另一個是系統類。
如果我理解正確的話,類加載器做正確的工作和負荷都com.your.package.View
和android.view.View
。您可以使用import
聲明選擇View
簡單地引用哪一個,否則您需要完全限定名稱,例如我剛剛描述的兩個類。
在純Java一樣的,如果你寫一個String
類重疊java.lang.String
如果在com.your.package中有相同的名稱類以及如何處理?先看看哪一個加載? –
你不應該能夠在同一個軟件包中創建兩個同名的類。你會看到一個編譯錯誤。 –
該問題的一般解決方案是讓您的類名稱自描述並且不與系統類重疊(如果可以的話)。 –
您需要使用上下文變量來使用這個
Context context = MainActivity.this;
,並獲得類名使用此
MainActivity.this.getClass().getSimpleName();
上下文變量爲什麼?需要什麼活動名稱? –
這只是錯誤的。 – Shark
是一個Java問題或Android的工作室? – agilob
在編譯期間只有程序包和類名稱數。類加載器在運行時發揮作用。 – Henry
@agilob這是一個java問題也許,我不知道 –