#java #methods #interface #arguments
Вопрос:
В java, как указать, что аргумент метода должен иметь определенный интерфейс или множество специфических интерфейсов.
Заранее спасибо.
Комментарии:
1. Для конкретного аргумента можно указать только один супертип. Если вы не можете этого сделать, вам придется добавлять перегрузки метода для каждой возможности.
Ответ №1:
https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html
<T extends B1 amp; B2 amp; B3>
Переменная типа с несколькими границами является подтипом всех типов, перечисленных в привязке. Если одна из границ является классом, она должна быть указана первой. Например:
`класс А { /* … */ }
интерфейс B { /* … */ }
интерфейс C { /* … */ }
класс D <T расширяет A amp; B amp; C> { /* … */ }`
Если привязка A не указана первой, вы получите ошибку во время компиляции:
class D <T extends B amp; A amp; C> { /* ... */ }
// ошибка во время компиляции
и в вашем методе
`публичный строковый процесс(<T расширяет A amp; B amp; C> yourTypeVariable){ //TODO}