Ich bin bei meiner Javalektüre auf die Class–Klasse gestoßen. Meine Idee war daraufhin folgende: Ich dachte, es sei möglich, einen Locator zu schreiben (wie ich ihn bei irgendwelchen kryptischen OSGi-Projekten bereits gesehen habe), welchem man ein Interface als Klasse übergibt, und das dann eine Instanz des implementierten Interface (also der Klasse, die das Interface implementiert) ausgibt. Das stelle ich mir wie hier in der Mainklasse veranschaulicht vor:
… und mein Lokator sieht wie folgt aus:
Nun habe ich zwei fragen:
Als ich in der Lokatorklasse einen try-ctach-Block austomatisch hinzufügen ließ, ist mir aufgefallen, dass die beiden möglichen Exceptions durch ein | , also durch ein bitweises oder getrennt sind – wieso nicht durch || ?
Zum anderen stelle ich mir die Frage, ob es überhaupt auf irgendeine Art und Weise machbar ist, im Lokator mit der package core;
- Methode eine Instanz derjenigen Klasse zu erhalten, die das Interface implementiert. Denn so wie es jetzt ist, bekomme ich natürlich eine Nullpointerexception, da im Lokator nicht eine Instanz der Klasse, sondern eine Interfaceinstanz erzeugt wird.
Java:
package core;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Main m = new Main();
m.go();
}
private void go() {
DispatcherService dispatcherservice = (DispatcherService) Locator.locate(DispatcherService.class);
//Hier bekommt die Locatemethode das Interface
dispatcherservice.setMessage("Here goes my message.");
System.out.println(dispatcherservice.getMessage());
}
}
… und mein Lokator sieht wie folgt aus:
Java:
package core;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Main m = new Main();
m.go();
}
private void go() {
ServiceImpl dispatcherservice = (ServiceImpl) Locator.locate(Service.class);
dispatcherservice.setMessage("Here goes my message.");
System.out.println(dispatcherservice.getMessage());
}
}
Nun habe ich zwei fragen:
Als ich in der Lokatorklasse einen try-ctach-Block austomatisch hinzufügen ließ, ist mir aufgefallen, dass die beiden möglichen Exceptions durch ein | , also durch ein bitweises oder getrennt sind – wieso nicht durch || ?
Zum anderen stelle ich mir die Frage, ob es überhaupt auf irgendeine Art und Weise machbar ist, im Lokator mit der package core;
Java:
public class ServiceImpl implements Service {
String mMessage = "";
public void setUserAndMessage(String msg) {
mMessage=msg;
}
public String getMessage() {
return mMessage;
}
public void setMessage(String msg) {
mMessage = msg;
}
}
Zuletzt bearbeitet von einem Moderator: