code: @CallerSensitive
      public static <U,W> AtomicReferenceFieldUpdater<U,W> newUpdater(Class<U> tclass,
                                                                      Class<W> vclass,
                                                                      String fieldName) {
          return new AtomicReferenceFieldUpdaterImpl<U,W>(tclass, vclass, fieldName, null);
          /* J2ObjC: Call stack not available.
          return new AtomicReferenceFieldUpdaterImpl<U,W>
              (tclass, vclass, fieldName, VMStack.getStackClass1()); // android-changed
          */
      }
docs: Creates and returns an updater for objects with the given field.
  The Class arguments are needed to check that reflective types and
  generic types match.
  
  @param tclass the class of the objects holding the field
  @param vclass the class of the field
  @param fieldName the name of the field to be updated
  @param <U> the type of instances of tclass
  @param <W> the type of instances of vclass
  @return the updater
  @throws ClassCastException if the field is of the wrong type
  @throws IllegalArgumentException if the field is not volatile
  @throws RuntimeException with a nested reflection-based
  exception if the class does not hold field or is the wrong type,
  or the field is inaccessible to the caller according to Java language
  access control