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

Consider adding solution for probelmatic example in "Wildcard Capture and Helper Methods"

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P5 P5
    • None
    • None
    • docs
    • None

      In http://docs.oracle.com/javase/tutorial/java/generics/capture.html

      There is no proposed solution (that involves a helper method) for

      public class WildcardErrorBad {

          void swapFirst(List<? extends Number> l1, List<? extends Number> l2) {
            Number temp = l1.get(0);
            l1.set(0, l2.get(0)); // expected a CAP#1 extends Number,
                                  // got a CAP#2 extends Number;
                                  // same bound, but different types
            l2.set(0, temp); // expected a CAP#1 extends Number,
                                  // got a Number
          }
      }


      Reader feedback suggested rewriting swapFirst to the following as a solution:

      public <T extends Number> void swapFirst(List<T> l1, List<T> l2){
         
          T temp = l1.get(0);
          l1.set(0,l2.get(0));
          l2.set(0, temp);
      }

            bhoran Bernard Horan (Inactive)
            rgallard Raymond Gallardo
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: