Я пытаюсь представить график с узлами и краями.«Импортировать» общий тип из другого класса в Java
У меня есть класс Node, который должен быть:
public class Node<NodeType>
и другой класс Edge, который я позволил спараметрировать каким-либо образом. Сначала я думал, что Edge<EdgeType>
, но так как они имеют Узлы как atribute, я в конечном итоге делаю следующее (в основном потому, что Eclipse, рассказал мне о Узле быть сырым типом, если я не параметрирования)
public class Edge<EdgeType, NodeType> {
private Node<NodeType> start;
private Node<NodeType> end;
private EdgeType value;
...
}
Это дает мне способность работать без проблем в классе Эджа, но есть некоторые методы в классе Node, которые требуют работу с кромками, такие как
public List<EdgeType> edgesValues(Node<NodeType> node) {
/*Returns a list of values of the edges between the node it is called on and the node given by argument*/
}
, которые я не могу использовать, потому что EdgeType не определена. Поскольку я не могу добавить еще один параметр в класс Node, я не знаю, как «импортировать» EdgeType в него.
Не могли бы вы объяснить более подробно, что это означает, что «есть некоторые методы в классе Node, которые требуют работы с Edges»? Вам даны строгие интерфейсы (возможно, даже модульные тесты)? Или это просто ваше * желание * иметь метод, подобный 'edgeValues'? Постарайтесь отделить жесткие требования (предписанные интерфейсы) от функций, которые вы сейчас считаете хорошими. Возможно, вы просто пытаетесь реализовать то, чего не должны, потому что ваше понимание интерфейсов является ошибочным. –