Gibt es eine Möglichkeit, einen Typ der Klasse für ein generisches Argument zu verwenden? Zum Beispiel habe ich diese Klasse ServiceNode
Java Generics <this??>
public final class ServiceNode<S extends NetworkService> {
private final S service;
private final Client client;
private Object attachment;
public ServiceNode(S service, Client client) {
this (service, client, null);
}
public ServiceNode(S service, Client client, Object attachment) {
this.service = service;
this.client = client;
this.attachment = attachment;
}
public S service() {
return service;
}
....
}
, die ein Teil der abstrakten Klasse von ServiceNode
in der NetworkService
Klasse NetworkService
public abstract class NetworkService {
private final Set<ServiceNode<?>> registeredNodes = new HashSet<>();
public final void register(ServiceNode<?> node) {
registeredNodes.add(node);
}
...
}
Also im Grunde ist es das Wildcard-Argument ohnehin zu entfernen und ersetzen Sie es mit welcher Typ auch immer die Klasse ist NetworkService
Nein, gibt es nicht. –
Wenn ich fragen darf - warum machen eine konkrete Klasse "weise" von ihrer äußeren Klasse abhängig? – fge