2011-04-25 29 views
3

我本來會期望以下任務都是有效的,但第二個引發的類沒有找到異常。有任何想法嗎?forName找不到類

missionIntent = new Intent(this, Mission00.class); 
/*DEBUG*/Log.d(this.getClass().getName(), "Checking Mission00 by class"); 

missionIntent = new Intent(this, Class.forName("Mission00")); 
/*DEBUG*/Log.d(this.getClass().getName(), "Checking Mission00 by string"); 

我也試過的Class.forName(「Mission00.class」),但無法正常工作或

+1

嘗試使用包含在它之前的包的「Mission00」:「com.package.something.Mission00」。 – Haphazard 2011-04-25 20:50:53

+0

是的,那是有效的。我怎樣才能找到前綴? this.getClass()。getName()返回「com.package.something.currentClass」,我可以找到沒有做字符串操作的前綴嗎?請作爲回答發佈,所以我可以給你一些觀點! – FrinkTheBrave 2011-04-25 20:53:07

回答

5

嘗試使用與之前包裝一致的「Mission00」:「com.package.something.Mission00」。由於您已經擁有課程名稱,因此您應該擁有包名稱,但您可以使用this.getClass.getPackage()來獲取前綴,就像您以前所要求的一樣。

+0

歡呼聲。其實我用this.getPackageName(),但你的答案(和你的第一個評論)告訴我的方式! – FrinkTheBrave 2011-05-01 21:37:00

7

使用完全合格的類名,包括包。