@Override
  public void resolveConstant(ConstantPool pool) {
    if (type == CodeConstants.CONSTANT_NameAndType) {
      elementName = pool.getPrimitiveConstant(index1).getString();
      descriptor = pool.getPrimitiveConstant(index2).getString();
    }
    else if (type == CodeConstants.CONSTANT_MethodHandle) {
      LinkConstant ref_info = pool.getLinkConstant(index2);

      className = ref_info.className;
      elementName = ref_info.elementName;
      descriptor = ref_info.descriptor;
    }
    else {
      if (type != CodeConstants.CONSTANT_InvokeDynamic && type != CodeConstants.CONSTANT_Dynamic) {
        className = pool.getPrimitiveConstant(index1).getString();
      }

      LinkConstant nameType = pool.getLinkConstant(index2);
      elementName = nameType.elementName;
      descriptor = nameType.descriptor;
    }

    initConstant();
  }
@Override
  public void resolveConstant(ConstantPool pool)