Versuchen:
%Vor%Ich muss eine benutzerdefinierte Klasse erstellen, die java.util.LinkedHashMap erweitert und String als Schlüssel und String als Wert annimmt und über einen Konstruktor ohne Argumente verfügt, der diese Map mit Anfangswerten vorbelegt.
Ich stecke bei der ersten Aufgabe fest - wie kann ich die LinkedHashMap so erweitern, dass sie statt generischer Argumente nur akzeptiert?
Ich habe das versucht, (funktioniert nicht)
%Vor%Alles was Sie brauchen ist:
%Vor% Entfernen Sie <String, String>
von Ihrem Klassennamen und es wird funktionieren. Sie erstellen eine Klasse, die LinkedHashMap<String, String>
erweitert, sodass Ihre Klasse bereits eine Map
ist, die String
als Schlüssel und String
als Wert benötigt. Wenn Sie Ihre eigene generische Klasse erstellen wollen, müssen Sie folgendes tun:
Erstellen Sie eine Klasse für Beispiel:
%Vor%und erweitern Sie dann diese Klasse:
%Vor% In diesem Fall müssen Sie den Schlüssel und den Wert für Ihre Klasse angeben, damit SomeMyMenu
class den Schlüssel und den Wert als String
verwendet. Sie können mehr über Generika hier lesen.
Aber effizienter ist es, eine letzte Klasse zu erstellen und die Karte so zu deklarieren:
%Vor%Und um die Werte von Ihrer Karte zu erhalten, benutzen Sie:
%Vor%Wenn Ihr Kampf, wie Sie beschreiben, nur mit der Deklaration ist, dann würde ich etwas versuchen wie:
%Vor%Wenn Ihr Kampf, wie Sie beschreiben, nur mit der Deklaration ist, dann würde ich etwas versuchen wie:
%Vor%Versuchen:
%Vor%Solange Sie JDK 1.5 oder höher verwenden, können Sie Generics verwenden und eine LinkedHashMap erstellen, die String-Schlüssel und String-Werte speichert und wie folgt initialisiert:
%Vor%Komposition ist in Ihrem Fall eine bessere Lösung als die Vererbung:
%Vor%Ich muss eine benutzerdefinierte Klasse erstellen, die java.util.LinkedHashMap erweitert und String als Schlüssel und String als Wert annimmt und über einen Konstruktor ohne Argumente verfügt, der diese Map mit Anfangswerten vorbelegt.
Ich stecke bei der ersten Aufgabe fest - wie kann ich die LinkedHashMap so erweitern, dass sie statt generischer Argumente nur akzeptiert?
Ich habe das versucht, (funktioniert nicht)
%Vor%Sie könnten etwas wie unten tun:
%Vor%Alles was Sie brauchen ist:
%Vor%Entfernen Sie %code% von Ihrem Klassennamen und es wird funktionieren. Sie erstellen eine Klasse, die %code% erweitert, sodass Ihre Klasse bereits eine %code% ist, die %code% als Schlüssel und %code% als Wert benötigt. Wenn Sie Ihre eigene generische Klasse erstellen wollen, müssen Sie folgendes tun:
Erstellen Sie eine Klasse für Beispiel:
%Vor%und erweitern Sie dann diese Klasse:
%Vor%In diesem Fall müssen Sie den Schlüssel und den Wert für Ihre Klasse angeben, damit %code% class den Schlüssel und den Wert als %code% verwendet. Sie können mehr über Generika hier lesen.
Aber effizienter ist es, eine letzte Klasse zu erstellen und die Karte so zu deklarieren:
%Vor%Und um die Werte von Ihrer Karte zu erhalten, benutzen Sie:
%Vor%Komposition ist in Ihrem Fall eine bessere Lösung als die Vererbung:
%Vor%