我在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符号。

10-01 19:08