Advertisement
stijn1989

Untitled

Apr 24th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.46 KB | None | 0 0
  1. Interface MyInterface
  2. {
  3.     void doeIets();
  4. }
  5.  
  6. Class A implements MyInterface
  7. {
  8.     void doeIets()
  9.     {
  10.         .....
  11.     }
  12. }
  13.  
  14. Class B implements MyInterface
  15. {
  16.     void doeIets()
  17.     {
  18.         .....
  19.     }
  20. }
  21.  
  22. Class C
  23. {
  24.     //een andere class die niets doet
  25. }
  26.  
  27. //Deze class gaat objecten accepteren die de MyInterface implementeren.
  28. //Als je geen specifieke interface wilt kan je ook gewoon <T> typen.
  29. //Dan kan deze klasse ieder type object aanvaarden.
  30. Class MySpecialArray<T extends MyInterface>
  31. {
  32.  
  33.  
  34.     private data;
  35.    
  36.     public MySpecialArray()
  37.     {
  38.         data = new T[10]; //onze array kan 10 objecten vasthouden van type T.
  39.     }
  40.    
  41.    
  42.     public bool add(T object)
  43.     {
  44.         //some logic checks
  45.         //get an index to store the object
  46.        
  47.         data[index] = object;
  48.     }
  49.    
  50.     //..some other colorfull functions
  51.  
  52.  
  53. }
  54.  
  55.  
  56. //in je applicatie ergens wil je nu die MySpecialArray gebruiken
  57. //wat is er zo speciaal aan? Niets maar als je bv een specifieke collection implementatie wilt omdat je een betere of andere
  58. //collectie manier hebt, dan kan dat. Er zijn al honderden collecties gemaakt.
  59. //Hier dan de usage:
  60. MySpecialArray<A> collectA = new MySpecialArray<A>();
  61. collectA.add(new A());
  62. collectA.add(new B()); //error want we aanvaarden enkel A types.
  63.  
  64. MySpecialArray<C> collectC = new MySpecialArray<C>(); //error want C extends niet van de interface
  65.  
  66.  
  67.  
  68. //wat hebben we nog? Je kan bv ook key,value gebruiken als generics. (HashMaps maken hier gebruik van)
  69. Class MyAwsomeHashMap<K,V> { ... }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement