У меня есть Generic:
public class Gen
public T getValue() {
return value;
}
}
и какой-то метод:
public void someMethod(Gen gen) {
System.out.println(gen.getValue());
}
Будет ли какая-то разница, если параметр метода someMethod будет иметь тип Gen вместо Gen?
Я понимаю, что метасимвольный аргумент может делать extends или super
Я правильно понял, что Gen это способ решения проблем унаследованного кода?
Ответ
В данном случае разницы нет.
Разница существовала бы, если бы в классе Gen был метод, принимающий T
public void setValue(T value) {
this.value = value;
}
На Gen setValue выполнить можно, а на Gen — нельзя.
Подстановочный параметр (wildcard) используется для установки ограничений на использование generic-класса. Методы, которые можно выполнить с классом Gen, можно выполнить для любого Gen
Подробнее:
Java Language Specification
Tutorial: Wildcards
Stackoverflow: Difference between an unbound wildcard and a raw type
Комментариев нет:
Отправить комментарий