Обобщения: «Синтаксическая ошибка на токене» расширяется «, ожидается»

1

Сначала я попробовал:

public class WeightedEdge280<V> extends Edge280<V>{

Который дал мне ошибку:

"Bound mismatch: The type V is not a valid substitute for the bounded parameter <V extends Vertex280> of the type Edge280<V>" 

Поэтому я попробовал:

public class WeightedEdge280<V> extends Edge280<V extends Vertex280>{...

Который дал мне ошибку:

"Syntax error on token "extends", , expected"

Класс ребер:

public class Edge280<V extends Vertex280> extends Pair280<V, V> {...

Инструкции по назначению:

The first step is to create the class for the custom edge object, lets call it WeightedEdge280<V>. It should be an extension of Edge280<V>
Теги:

2 ответа

1
Лучший ответ

Вы должны ввести те же границы при расширении общего класса:

public class WeightedEdge280<V extends Vertex280> extends Edge280<V>

Причина в том, что вы заявили, что параметр универсального типа в Edge extends Vertex280. Когда вы создаете класс, который расширяет Edge вам необходимо убедиться, что его общий тип типа также ограничен как минимум так же сильно. Это связано с тем, что общий тип WeightedEdge280 всегда должен быть допустимым типовым типом для Edge280.

В противном случае я мог бы сделать что-то вроде:

final WeightedEdge280<String>
2

Я думаю, вы имеете в виду:

public class WeightedEdge280<V extends Vertex280> extends Edge280<V>

Оценки должны быть указаны там, где определяется общий параметр.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню