Я работаю с деревом в Java, и у меня есть следующий интерфейс для простого неупорядоченного дерева с собственной ссылкой:
public interface Node<N extends Node> {
public N getParent();
public void setParent(N parent);
public Collection<N> getChildren();
public void addChild(N node);
public void removeChild(N node);
public N getRootNode();
... more ...
}
Идея, конечно же, заключается в создании типобезопасного узла
public abstract class ParentChildNode<E extends Node> implements Node<E> {
проблема, которая меня действительно раздражает, это предупреждение, которое я получаю:
ParentChild is a raw type. References to generic type Node<N> should be parameterized
warning on this line:
public interface Node<N extends Node> {
warning on this line:
public abstract class ParentChildNode<E extends ParentChild> implements ParentChild<E>
Я могу сделать:
public interface Node<N extends Node<?>> {
но я боюсь, что я наступаю на территорию yuckness . Я могу подавить предупреждение, но это не разрешено, где я работаю.
есть предложения? Я заметил, что API-интерфейс коллекций java.util нигде не предупреждает.
заранее спасибо