2013-03-21 112 views

回答

6

因爲該類由reflection加載,因此編譯器不知道該類不存在(對於編譯器,這是一個String,而不是類名)。當JVM嘗試通過反射來加載該類時,它應該拋出一個ClassNotFoundException,表示沒有這樣的類。

+0

我不認爲Android甚至會爲一個BroadcastReceiver拋出一個CNFE ......這可能是_frustrating_。 – Sam 2013-03-21 16:22:48

+0

@Sam我編輯爲「應該」而不是「will」:P Android是令人討厭/令人沮喪的東西(檢查Parcelable或Fragment wonderful world:P)**以及許多非常糟糕的API類。 – m0skit0 2013-03-21 16:28:31

+1

這個答案並沒有真正回答這個問題。這種檢查可以在編譯時輕鬆完成,並且已經由許多'IDE'完成。 'Intellij IDEA'默認顯示這種類型的錯誤,'Eclipse'允許你運行'Android Lint'(右鍵點擊項目 - > Android Tools - > Run Lint),並找到這個錯誤。 – 2013-03-21 16:52:22