[ 
https://issues.apache.org/jira/browse/LANG-1674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary D. Gregory resolved LANG-1674.
-----------------------------------
    Fix Version/s: 3.13.0
       Resolution: Fixed

> 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
>             Fix For: 3.13.0
>
>          Time Spent: 1h 40m
>  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