code: @Override
      public FieldVisitor visitField(final int access, final String name,
              final String desc, final String signature, final Object value) {
          if (computeSVUID) {
              if ("serialVersionUID".equals(name)) {
                  // since the class already has SVUID, we won't be computing it.
                  computeSVUID = false;
                  hasSVUID = true;
              }
              /*
               * Remember field for SVUID computation For field modifiers, only
               * the ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC,
               * ACC_FINAL, ACC_VOLATILE, and ACC_TRANSIENT flags are used when
               * computing serialVersionUID values.
               */
              if ((access & Opcodes.ACC_PRIVATE) == 0
                      || (access & (Opcodes.ACC_STATIC | Opcodes.ACC_TRANSIENT)) == 0) {
                  int mods = access
                          & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PRIVATE
                                  | Opcodes.ACC_PROTECTED | Opcodes.ACC_STATIC
                                  | Opcodes.ACC_FINAL | Opcodes.ACC_VOLATILE | Opcodes.ACC_TRANSIENT);
                  svuidFields.add(new Item(name, mods, desc));
              }
          }
  
          return super.visitField(access, name, desc, signature, value);
      }
docs: /*
  Gets class field information for step 4 of the algorithm. Also determines
  if the class already has a SVUID.