private void initConstant() {
    if (type == CodeConstants.CONSTANT_Methodref ||
        type == CodeConstants.CONSTANT_InterfaceMethodref ||
        type == CodeConstants.CONSTANT_InvokeDynamic ||
        (type == CodeConstants.CONSTANT_MethodHandle && index1 != CodeConstants.CONSTANT_MethodHandle_REF_getField &&
         index1 != CodeConstants.CONSTANT_MethodHandle_REF_putField)) {
      int parenth = descriptor.indexOf(')');
      if (descriptor.length() < 2 || parenth < 0 || descriptor.charAt(0) != '(') {
        throw new IllegalArgumentException("Invalid descriptor: " + descriptor +
                                           "; type = " + type + "; className = " + className + "; elementName = " + elementName);
      }
    }
  }
private void initConstant()