2013-07-21 7 views
6

Ich habe versucht, einfach einen Namen dafür zu bekommen, was der <> Teil der Erklärung heißt, zu keinem Glück. Kann mir jemand sagen, wie es heißt, wie ich es in meiner Klasse verwenden kann? Zum Beispiel möchte ich vielleicht versuchen, meine eigene Art von Sammlung zu machen, und zum Beispiel new MyThing<String> verwenden. Jede Hilfe wird geschätzt, danke!Was ist das <K, V> Ding in einer hashmap, und wie benutze ich es in meiner eigenen Klasse?

+1

Sie meinen Sie 'generics'? Siehe http://docs.oracle.com/javase/tutorial/java/generics/index.html –

+0

@StephenC Ich wusste nicht, dass es Generika genannt wurde. – user2507230

+0

Oder dies - http://stackoverflow.com/questions/490091/java-generics –

Antwort

6

Das ist die generische Art Deklaration der Klasse. Zum Beispiel, um festzulegen, dass eine Karte Strings als Schlüssel und ganzen Zahlen als Werte verwenden wird:

Map<String, Integer> mymap = new HashMap<String, Integer>(); 
3

Es Generika genannt wird, und hier ist, wie Sie es verwenden können:

public class MyClass<MyType> { 
    private MyType myItem; 
    public MyClass(MyType item) { 
     myItem = item; 
    } 
    public MyType getMyItem() { 
     return myItem; 
    } 
} 

Herkömmlicher den Namen der Typ (MyType in diesem Fall) ist T für "Typ" und K und V für "Schlüssel" und "Wert", aber ich mache es nur einfacher zu verstehen.

Sie könnten dann tun:

MyClass<String> m = new MyClass<String>("potato"); 
System.out.println(m.getMyItem()); // prints "potato" 
+0

Es ist üblicher, einen einzelnen Großbuchstaben als generischen Parameter (nicht seinen richtigen Namen) zu verwenden. –

+1

@Tom Ich weiß, ich war mitten in einer Bearbeitung (Antwort von einem Handy ist * hard * ': P') – Doorknob

Verwandte Themen