В настоящее время у меня есть абстрактный класс Network и интерфейс Node. Я хочу использовать generics, чтобы показать, какие узлы могут принимать сеть, и к каким сетям может подключаться узел. Мой текущий код выглядит следующим образом:Сопряжение общих классов в java - как лучше всего выполнить?
public abstract class Network<T extends Node> {
List<T> nodes;
public void addNode(T node) {
nodes.add(node);
node.setNetwork(this);
}
}
и
public interface Node<T extends Network> {
void setNetwork(T net);
}
, а также некоторые другие методы, но проблема уже здесь: вызов setNetwork(this)
снят и может вызвать ошибку, если кто-то делает сеть узлы, которые не могут подключиться к этому сетевому классу. Есть лучший способ сделать это? Или это плохая практика в первую очередь и ее следует избегать?
Что делает «классная сеть»? Разве не сеть неявно определяется набором подключенных узлов? – null
@null в основном это оболочка вокруг набора узлов, который позволяет им реагировать на изменения в сети, получать другие узлы и так далее. – CypherAJ