About
A generic method or class that operates on numbers will used bounded type parameters to restrict the type parameters accepted.
Articles Related
Syntax
The extends keyword, followed by one or several upper bounds.
If one of the bounds is a class, it must be specified first
<T (extends|super) B1 [& B2 & ... & Bn]>
where:
- B1 to Bn are class or interface that defined the bounds
- B2 to Bn are optional
- extends defined upper bounds
- super define lower bounds
In this context, extends is used in a general sense to mean either:
- extends (as in classes)
- implements (as in interfaces).
Example
Method
public <U extends Number> void inspect(U u)
Class
public class NaturalNumber<T extends Integer> {
private T n;
public NaturalNumber(T n) { this.n = n; }
public boolean isEven() {
// intValue is methods defined in the bounds
return n.intValue() % 2 == 0;
}
// ...
}