Open sne11ius opened 7 years ago
Comparing urls accurately (taking into account relative links, case insensitivity, etc) is notoriously difficult, so I'm not sure that LinkImpl should implement equals.
I think it would be a good idea to make equals and hashcode consistent for RatioImpl.
I may have some time Friday to look at this.
That was a fast answer, thank you :)
With regard to LinkImpl
: Your concerns are right from a "semantic" perspective I guess. However, I think a pure "technical" implementation (comparing all properties) would be just as reasonable - and certainly better than the current state.
Well one of those properties is a URL and java.net.URL's equals() is famous for actually resolving host names into IP addresses, which is a blocking IO call. java.net.URI addresses some of these issues and would maybe have been a better choice here.
Wow, totally didn't know about the URL/equals issues - thanks again ;) So what about simply comparing the string representations of the urls? Do you think that could be viable approach?
Might work - would probably be best to convert toURI(), then compare those for equality.
Sounds great, thank you!
I think
LinkImpl
,RatioImpl
etc. should overrideequals()
andhashCode()
more consistently.LinkImpl
doesn't override any of the twoRatioImpl
overridesequals()
, but nothashCode()
. And the implementation ofequals()
relies on object identity of the numerators und denominatorsMy suggestions would be to generate all
equals
andhashCode
implementations for these classes with your IDE of choice.I would have created a pr, but I read you dont accept any...