Skip to content

Instantly share code, notes, and snippets.

@up1
Last active June 8, 2024 05:07
Show Gist options
  • Save up1/42d503ff8d13e90a169ac6ed4db3849a to your computer and use it in GitHub Desktop.
Save up1/42d503ff8d13e90a169ac6ed4db3849a to your computer and use it in GitHub Desktop.
Java23 :: Markdown Comment
$java -version
openjdk version "23-ea" 2024-09-17
OpenJDK Runtime Environment (build 23-ea+25-2094)
OpenJDK 64-Bit Server VM (build 23-ea+25-2094, mixed mode, sharing)
$javadoc -d doc Demo.java
Loading source file Demo.java...
Constructing Javadoc information...
Building index for all the packages and classes...
Standard Doclet version 23-ea+25-2094
Building tree for all the packages and classes...
Generating doc/Demo.html...
Generating doc/package-summary.html...
Generating doc/package-tree.html...
Generating doc/overview-tree.html...
Generating doc/allclasses-index.html...
Building index for all classes...
Generating doc/allpackages-index.html...
Generating doc/index-all.html...
Generating doc/search.html...
Generating doc/index.html...
Generating doc/help-doc.html...
public class Demo {
private int id;
private String name;
// Constructor, getters, setters, etc.
/// Returns a hash code value for the object. This method is
/// supported for the benefit of hash tables such as those provided by
/// [java.util.HashMap].
///
/// The general contract of `hashCode` is:
///
/// - Whenever it is invoked on the same object more than once during
/// an execution of a Java application, the `hashCode` method
/// must consistently return the same integer, provided no information
/// used in `equals` comparisons on the object is modified.
/// This integer need not remain consistent from one execution of an
/// application to another execution of the same application.
/// - If two objects are equal according to the
/// [equals][#equals(Object)] method, then calling the
/// `hashCode` method on each of the two objects must produce the
/// same integer result.
/// - It is _not_ required that if two objects are unequal
/// according to the [equals][#equals(Object)] method, then
/// calling the `hashCode` method on each of the two objects
/// must produce distinct integer results. However, the programmer
/// should be aware that producing distinct integer results for
/// unequal objects may improve the performance of hash tables.
///
/// @implSpec
/// As far as is reasonably practical, the `hashCode` method defined
/// by class `Object` returns distinct integers for distinct objects.
///
/// @return a hash code value for this object.
/// @see java.lang.Object#equals(java.lang.Object)
/// @see java.lang.System#identityHashCode
@Override
public int hashCode() {
int result = 17;
result = 31 * result + id;
result = 31 * result + (name != null ? name.hashCode() : 0);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Demo demo = (Demo) obj;
if (id != demo.id) return false;
return name != null ? name.equals(demo.name) : demo.name == null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment