[ 
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)

Reply via email to