[
https://issues.apache.org/jira/browse/LANG-1674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17424532#comment-17424532
]
Baljit Singh commented on LANG-1674:
------------------------------------
See https://github.com/apache/commons-lang/pull/810
> Range construction with abstract/derived classes
> ------------------------------------------------
>
> Key: LANG-1674
> URL: https://issues.apache.org/jira/browse/LANG-1674
> Project: Commons Lang
> Issue Type: Improvement
> Reporter: Baljit Singh
> Priority: Minor
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The constructors for {{org.apache.commons.lang3.Range}} don't play nicely
> with abstract/derived classes. Example:
> {quote}
> abstract class AbstractComparable implements Comparable<AbstractComparable> {
> @Override public int compareTo(AbstractComparable o) {}
> }
> class DerivedA extends AbstractComparable {}
> class DerivedB extends AbstractComparable {}
> // compiles, and reasonable since AbstractComparable is the common parent
> static final Range<AbstractComparable> RANGE_MIXED = Range.between(new
> DerivedA(), new DerivedB());
> // compiles, but unreasonable to force usage of parent class
> static final Range<AbstractComparable> RANGE_SAME_CLASS = Range.between(new
> DerivedA(), new DerivedA());
> // compiler error
> static final Range<DerivedA> RANGE_A = Range.between(new DerivedA(), new
> DerivedA());
> // compiler error
> static final Range<DerivedB> RANGE_B = Range.is(new DerivedB());
> {quote}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)