488 VarHandleChars.Array,
489 VarHandleChars.FieldInstanceReadOnly,
490 VarHandleChars.FieldStaticReadOnly,
491 VarHandleDoubles.Array,
492 VarHandleDoubles.FieldInstanceReadOnly,
493 VarHandleDoubles.FieldStaticReadOnly,
494 VarHandleFloats.Array,
495 VarHandleFloats.FieldInstanceReadOnly,
496 VarHandleFloats.FieldStaticReadOnly,
497 VarHandleInts.Array,
498 VarHandleInts.FieldInstanceReadOnly,
499 VarHandleInts.FieldStaticReadOnly,
500 VarHandleLongs.Array,
501 VarHandleLongs.FieldInstanceReadOnly,
502 VarHandleLongs.FieldStaticReadOnly,
503 VarHandleReferences.Array,
504 VarHandleReferences.FieldInstanceReadOnly,
505 VarHandleReferences.FieldStaticReadOnly,
506 VarHandleShorts.Array,
507 VarHandleShorts.FieldInstanceReadOnly,
508 VarHandleShorts.FieldStaticReadOnly {
509 final VarForm vform;
510 final boolean exact;
511
512 VarHandle(VarForm vform) {
513 this(vform, false);
514 }
515
516 VarHandle(VarForm vform, boolean exact) {
517 this.vform = vform;
518 this.exact = exact;
519 }
520
521 /**
522 * Returns the target VarHandle. Subclasses may override this method to implement
523 * additional logic for example lazily initializing the declaring class of a static field var handle.
524 */
525 @ForceInline
526 VarHandle target() {
527 return asDirect();
528 }
|
488 VarHandleChars.Array,
489 VarHandleChars.FieldInstanceReadOnly,
490 VarHandleChars.FieldStaticReadOnly,
491 VarHandleDoubles.Array,
492 VarHandleDoubles.FieldInstanceReadOnly,
493 VarHandleDoubles.FieldStaticReadOnly,
494 VarHandleFloats.Array,
495 VarHandleFloats.FieldInstanceReadOnly,
496 VarHandleFloats.FieldStaticReadOnly,
497 VarHandleInts.Array,
498 VarHandleInts.FieldInstanceReadOnly,
499 VarHandleInts.FieldStaticReadOnly,
500 VarHandleLongs.Array,
501 VarHandleLongs.FieldInstanceReadOnly,
502 VarHandleLongs.FieldStaticReadOnly,
503 VarHandleReferences.Array,
504 VarHandleReferences.FieldInstanceReadOnly,
505 VarHandleReferences.FieldStaticReadOnly,
506 VarHandleShorts.Array,
507 VarHandleShorts.FieldInstanceReadOnly,
508 VarHandleShorts.FieldStaticReadOnly,
509 VarHandleFlatValues.Array,
510 VarHandleFlatValues.FieldInstanceReadOnly,
511 VarHandleFlatValues.FieldStaticReadOnly {
512 final VarForm vform;
513 final boolean exact;
514
515 VarHandle(VarForm vform) {
516 this(vform, false);
517 }
518
519 VarHandle(VarForm vform, boolean exact) {
520 this.vform = vform;
521 this.exact = exact;
522 }
523
524 /**
525 * Returns the target VarHandle. Subclasses may override this method to implement
526 * additional logic for example lazily initializing the declaring class of a static field var handle.
527 */
528 @ForceInline
529 VarHandle target() {
530 return asDirect();
531 }
|