Java Tutorial/Generics/Generic Interfaces

Материал из Java эксперт
Перейти к: навигация, поиск

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

  1. type-param-list is a comma-separated list of type parameters.
  2. When a generic interface is implemented, you must specify the type arguments



   <source lang="java">

interface interface-name<type-param-list> { // ...</source>