我在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