Java/Generics/Generic Interface

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

A generic interface example.

   <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 GenIFDemo {

 public static void main(String args[]) { 
   Integer inums[] = {3, 6, 2, 8, 6 }; 
   Character chs[] = {"b", "r", "p", "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>
   
  
 
  



Interface Generic (Has compile error)

   <source lang="java">

import java.util.*; interface BaseInterface<A> {

   A getInfo();

} class ParentClass implements BaseInterface<Integer> {

   public Integer getInfo()
   {
       return(null);
   }

} class ChildClass extends ParentClass implements BaseInterface<String> { } public class BadParents {

   public static void main(String args[])
   {
       Vector<Integer> v1 = new Vector<Integer>();
       Vector v2;
       v1 = v2;
       v2 = v1;
   }

}


      </source>