我在Android中使用JavaAssist爲某個目的製作動態類。當試圖獲得java.lang.String
時,ClassPool get()
方法拋出NotFoundException
。JavaAssist ClassPool類'get方法拋出java.lang.String的NotFoundException
它在JUnit測試中工作正常。但是如果我在設備中運行相同的程序,它會拋出異常。
這是我正在嘗試的代碼片段。
ClassPool classPool = ClassPool.getDefault();
CtClass ctClass=classPool.get("java.lang.String");
第二行引發異常。
請幫忙。
你的ClassPool.java中的get(String str)方法返回什麼?它是如何實現的?您可以編輯您的原始代碼並添加它的代碼...不應該像下面這樣創建類「ClassPool」的對象'classPool':'ClassPool classPool = new ClassPool();'您的構造函數你的ClassPool.java類看起來像? –
get方法返回CtClass的實例。如果沒有找到它會拋出NotFoundException。 ClassPool是javassist中的預定義類,因此我無法修改代碼。 ClassPool.getDefault()返回ClassPool類的單例實例。 – user7409419