Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-5052943

4.10.4: Improve lub for lower-bounded wildcards and variables

    XMLWordPrintable

Details

    • Fix Understood
    • generic
    • generic

    Description

      In:

        static <T> T choose(boolean b, T trueValue, T falseValue) {
          return b ? trueValue : falseValue;
        }
        boolean b = false;
        List<? super Number> s = null;
        s = b ? s : s;
        s = choose(b, s, s);

      Inference can't handle lower/super bounded wildcards leading to errors like:

      Choose.java:10: incompatible types
      found : java.util.List<capture of ? extends java.lang.Object>
      required: java.util.List<? super java.lang.Number>
              s = b ? s : s;
                    ^
      Choose.java:11: incompatible types
      found : java.util.List<capture of ? extends java.lang.Object>
      required: java.util.List<? super java.lang.Number>
              s = choose(b, s, s);
                        ^

      See the attached file Choose.java

      ###@###.### 2004-05-25

      Attachments

        Issue Links

          Activity

            People

              dlsmith Dan Smith
              ahe Peter Ahe
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Imported:
                Indexed: