< prev index next >
src/java.base/share/classes/java/lang/invoke/VarHandle.java
Print this page
rev 52981 : 8215300: additional changes to constants API
*** 1862,1871 ****
--- 1862,1881 ----
this.type = type;
this.mode = mode;
}
}
+ /**
+ * Compare this {@linkplain VarHandle} with another object for equality.
+ * Two {@linkplain VarHandle}s are considered equal if they both describe the
+ * same instance field, both describe the same static field, both describe
+ * array elements for arrays with the same component type, or both describe
+ * the same component of an off-heap structure.
+ *
+ * @param o the other object
+ * @return Whether this {@linkplain VarHandle} is equal to the other object
+ */
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
*** 1881,1890 ****
--- 1891,1906 ----
return 31 * accessModeType(AccessMode.GET).hashCode() + internalHashCode();
}
abstract int internalHashCode();
+ /**
+ * Returns a compact textual description of this {@linkplain VarHandle},
+ * including the type of variable described, and a description of its coordinates.
+ *
+ * @return A compact textual description of this {@linkplain VarHandle}
+ */
@Override
public final String toString() {
return String.format("VarHandle[varType=%s, coord=%s]",
varType().getName(),
coordinateTypes());
*** 2270,2279 ****
--- 2286,2303 ----
default:
throw new InternalError("Cannot reach here");
}
}
+ /**
+ * Returns a compact textual description of this constant description.
+ * For a field {@linkplain VarHandle}, includes the owner, name, and type
+ * of the field, and whether it is static; for an array {@linkplain VarHandle},
+ * the name of the component type.
+ *
+ * @return A compact textual description of this descriptor
+ */
@Override
public String toString() {
switch (kind) {
case FIELD:
case STATIC_FIELD:
< prev index next >