Ich habe eine String-ähnliche Klasse myString
. Zu seinen Methoden möchte ich generische Typen T übergeben, wobei T entweder eine Zeichenkette oder ein Objekt von myString
sein kann. Was ich bisher getan haben, um die Methoden der String-Klasse legen, das ich (wie charAt(), size()
) verwenden, um in einer Schnittstelle myInterface
, und so etwas wie folgt geschrieben:Generische Methoden, denen ich übergeben kann String-Parameter
class myString implements myInterface{
public <T extends myInterface> void mymethod(
T inputString){
}
}
Was ich will, ist, dass inputString
sein kann entweder ein String oder ein myString
Objekt.
Allerdings bekomme ich einen Fehler, der String is not a valid type for T
sagt.
Was mache ich falsch?
PS: Dies ist meine erste Frage zu Stack, also pl. bleib bei mir.
'String' implementiert nicht Ihre Schnittstelle' myInterface', also wird 'myInterface' nicht als polymorpher Typ für' String' funktionieren. "String" implementiert jedoch eine Schnittstelle namens "CharSequence" (https://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html). Vielleicht solltest du das stattdessen verwenden. – khelwood
Danke euch allen. Ich habe versucht, alle Antworten und Kommentare zu akzeptieren, da sie mir alle neue Informationen gegeben haben, die das Problem gelöst haben; Ich konnte jedoch nur eine Antwort akzeptieren. Daher habe ich den einen an der Spitze akzeptiert. – vksd
Richtig, Sie können nur eine Antwort akzeptieren. Aber Sie können alle aufwerten. :) – ajb