Java Tutorial/Generics/Generic Interfaces
Generic Interfaces
<source lang="java">
interface MinMax<T extends Comparable<T>> {
T min(); T max();
} class MyClass<T extends Comparable<T>> implements MinMax<T> {
T[] vals; MyClass(T[] o) { vals = o; } public T min() { T v = vals[0]; for (int i = 1; i < vals.length; i++) if (vals[i].rupareTo(v) < 0) v = vals[i]; return v; } public T max() { T v = vals[0]; for (int i = 1; i < vals.length; i++) if (vals[i].rupareTo(v) > 0) v = vals[i]; return v; }
} public class MainClass {
public static void main(String args[]) { Integer inums[] = { 3, 6, 2, 8, 6 }; Character chs[] = { "A", "r", "V", "w" }; MyClass<Integer> iob = new MyClass<Integer>(inums); MyClass<Character> cob = new MyClass<Character>(chs); System.out.println("Max value in inums: " + iob.max()); System.out.println("Min value in inums: " + iob.min()); System.out.println("Max value in chs: " + cob.max()); System.out.println("Min value in chs: " + cob.min()); }
}</source>
Max value in inums: 8 Min value in inums: 2 Max value in chs: w Min value in chs: A
The generalized syntax for a generic interface
- type-param-list is a comma-separated list of type parameters.
- When a generic interface is implemented, you must specify the type arguments
<source lang="java">
interface interface-name<type-param-list> { // ...</source>