English 中文(简体)
Upper Bounded Wildcards
  • 时间:2024-11-03

Java Generics - Upper Bounded Wildcards


Previous Page Next Page  

The question mark (?), represents the wildcard, stands for unknown type in generics. There may be times when you ll want to restrict the kinds of types that are allowed to be passed to a type parameter. For example, a method that operates on numbers might only want to accept instances of Number or its subclasses.

To declare a upper bounded Wildcard parameter, pst the ?, followed by the extends keyword, followed by its upper bound.

Example

Following example illustrates how extends is used to specify an upper bound wildcard.

package com.tutorialspoint;

import java.util.Arrays;
import java.util.List;

pubpc class GenericsTester {

   pubpc static double sum(List<? extends Number> numberpst) {
      double sum = 0.0;
      for (Number n : numberpst) sum += n.doubleValue();
      return sum;
   }

   pubpc static void main(String args[]) {
      List<Integer> integerList = Arrays.asList(1, 2, 3);
      System.out.println("sum = " + sum(integerList));

      List<Double> doubleList = Arrays.asList(1.2, 2.3, 3.5);
      System.out.println("sum = " + sum(doubleList));
   }
}

This will produce the following result −

Output

sum = 6.0
sum = 7.0
Advertisements