problem klonen von interface wie??
-
hi, ich programmiere grad so ne art irc bot oder auch irc bouncer den ich dann auf nem server laufen lassen kann und der dann das macht was ich will.
Mein problem ist jetzt folgendes. Ich habe einen Empfangs-Thread, der soll verschiedene Objekte zu den Channel Threads synchronisieren, aber ich will nicht für jedes Objekt ne eigene sync Rotiene schreiben.. naja eigentlich egal ich schreib jetz wie ich mir das gedacht hab einfach mal rein.public interface Standarts { public byte GetTyp(); } publc class A implements Standarts{ private String Hallo="hi"; public byte GetTyp(){ return (byte)2; } publc String GetHallo(){ return this.Hallo; } } public class B implements Standarts{ private String Bye="tschoe"; public byte GetTyp(){ return (byte)1; } public String GetBye(){ return this.Bye; } } //jetz gehts ab.. public class thEmpf { //...wird irgenwas empfangen und ausgewertet. so das es jetzt entweder ein A oder ein B Objekt ist dann wird das A oder B Objetk der Methode weiterleiten übergeben. //so vielleicht this.weiterleiten(new A()); oder halt this.weiterleiten(new B()); public void weiterleiten(Standarts AoB){ for(int i=0; i<max; i++){ threads[i].bekommeObjekt(AoB.clone); //ich will jedem Thread ein eigenes objekt geben. deshalb clone. } }
Ja ich hoffe da steigt jetzt jemand durch und kann mir helfen. wie gesagt ich will AoB klonen aber das ist ja eigentlich nur nen interface. und ich habe gerade keine idee wie ich das machen sollte.
danke gruss
-
Ehrlich gesagt versteh ich nicht, warum du das Clonen willst...
Wie machst du das denn mit anderen Objekten?
Du mußt doch irgendwie das clone nach außen verfügbar machen...Warum machst du in das Interface nicht einfach
die Methode clone als public rein?public Object clone() throws CloneNotSupportedException // ich glaub in der Klasse brauchst du da gar nix mehr machen
Sollte so gehen...
Gruß,
JSpille
-
frager schrieb:
Ja ich hoffe da steigt jetzt jemand durch und kann mir helfen. wie gesagt ich will AoB klonen aber das ist ja eigentlich nur nen interface. und ich habe gerade keine idee wie ich das machen sollte.
Da ein Interface nicht instantiiert werden kann, kannst es AFAIK auch nicht clonen.
-
Ich versteh nicht wo dein Problem ist. Es werden doch nicht die Methoden des Interfaces ausgeführt (geht ja auch nicht), sondern die der Klasse die das Interface implementiert. Du machst es also so wie es CSpille beschrieben hat und A und B implementieren dann jeweils clone.
Falls die Namen nicht nur für hier sind, würde ich dir etwas aussagekräftigere Bezeichnungen empfehlem und IStandards schreiben, wobei Standard auch nicht viel aussagt.