Use Double and Long hashCode functions - #3046
Conversation
|
Thanks! The "check-android-compatibility" CI workflow currently fails because those methods were only added in Android API level 24 ( Lines 526 to 528 in c9f3fd5 @eamonnmcmanus, would it make sense to raise the minimum API level to 24? There are a few other TODOs in the code which could be addressed then as well (in subsequent PRs). |
|
Done in #3082. @lllincoln this PR conflicted with changes from #3059. I've adapted your idea to those changes. Does it look reasonable? |
Looks great! Thanks for following up on this and adapting it! |
Purpose
JsonPrimitive.hashCodecurrently contains a comment and the hashCode bitwise computation itself. This can be simplified using the hashCode functions that JDK 1.8+ provides through Long and Double. This PR aims to improve the readability of the function by using those Long and Double hashCode functions.Description
Java 1.8 introduced Double.hashCode and Long.hashCode.
Double.hashCode:Long.hashCode:Currently, GSON performs the same operations by essentially inlining these functions. By using the JDK provided hashCode functions and not inlining them, this PR improves the readability of the
JsonPrimitive.hashCodefunction. Thanks for considering!Checklist
This is automatically checked by
mvn verify, but can also be checked on its own usingmvn spotless:check.Style violations can be fixed using
mvn spotless:apply; this can be done in a separate commit to verify that it did not cause undesired changes.mvn clean verify javadoc:jarpasses without errors