我在Android中使用JavaAssist来创建动态类。尝试获取get()
时,ClassPool NotFoundException
方法抛出java.lang.String
。
它在JUnit Test中工作正常。但是,如果我在设备中运行相同的内容,则会引发异常。
这是我正在尝试的代码片段。
ClassPool classPool = ClassPool.getDefault();
CtClass ctClass=classPool.get("java.lang.String");
第二行引发异常。
请帮忙。
最佳答案
尝试使用“ Ljava.lang.String”或“ Ljava.lang.String;”更改字符串“ java.lang.String”。它应该工作。
由于您正在加载嵌入到Java中的类,因此您的计算机可能无法识别字符串的标准名称,但需要JVM内部使用的名称来标识此特定对象。
要了解有关“ L”主题的更多信息,建议您阅读JVM specs,重点是chapter 4.3,并且也很容易理解,并且简短地阅读有关数组但也包含此内容的question符号。