Ich möchte eine Klasse-Instanz zu einer Methode eines anderen übergeben und sicher sein, dass es die erforderliche Schnittstelle implementiert. Der Code ist so etwas wie diesesWie übergibt man eine Instanz an eine Klasse, die eine Schnittstelle implementieren und dann in Java verwenden muss?
public interface MyInterface{
someMethod();
}
public class A implements MyInterface{
B bInst;
public someMethod(){
//stuff
}
public bar(){
bInst = new B(this); // [4]
}
}
public class B{
private MyInterface x; //[1]
// here i don't want to use
void B(MyInterface y){ // [2]
this.x=y; // [3]
}
private void foo(){
x.someMethod();
}
}
Ich versuchte subsituting "MyInterface" in [1] und [2] "Class <? Erweitert IBtBytesReciever>" aber Compiler geben Sie mir Fehler oder in [2] oder in [3 ].
Wie kann ich meine Idee am besten umsetzen?
HINWEIS: Ich möchte nicht direkt Klasse A verwenden, da der Klasse B müssen nicht den genauen Namen der Klasse kennen, und es muss mit verschiedenen Klassen
EDIT wiederverwendbar sein: Der Fehler ist auf [ 4]
constructor B(class A) not defined
Was magst du nicht an 'void B (MyInterface y)'? Es scheint genau das zu tun, was du sagst .. –
Was ist die Fehlermeldung, die Sie bekommen? – ControlAltDel
Was ist der Compilerfehler? – Kashyap