解析super_class的时候也是需要特别注意,当解析java.lang.Objectsuper_class的值为0,常量池中不包含索引为0的对象,所以需要直接将父类名称设置为java/lang/Object

    1. // u2 super_class;
    2. int superClassIndex = dis.readUnsignedShort();
    3. // 当解析Object类的时候super_class为0
    4. if (superClassIndex != 0) {
    5. this.superClass = (String) getConstantPoolValue(superClassIndex);
    6. } else {
    7. this.superClass = "java/lang/Object";
    8. }

    解析结果:"superClass": "java/lang/Object",