如果代码调用new int[0][0],条目[[I 将被放入常量池表中。类似的条目将放置在更高维的数组中。
但是,如果代码调用 new int[0],常量池表中将不会出现任何条目,就像 int 类型不会出现任何条目一样。
同样有趣的是,如果 codeit 调用 new String[0][0] 那么“[[java/lang/String;” 被添加到常量池表中,但是如果代码调用 new String() 或 new String[0],则只有“java/lang/String”被添加到常量池表中(没有 [ 或 ; 在第二种情况下) .
假设我的代码和 commons 的 BCEL API 都正确解析了池表,为什么常量池表中没有列出一维数组类型?