@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,Reflection.getCallerClass());
}

@ 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 , Reflection . getCallerClass ( ) ) ; }
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 .
