Как вы устанавливаете, что тип параметра метода расширяет определенный класс и реализует определенный интерфейс?Как вы навязываете, что тип параметра метода расширяет определенный класс и реализует определенный интерфейс?
ответ
/*
A method that will only accept a parameter that :
extends SomeClass , AND implements SomeInterface .
*/
private < T extends SomeClass & SomeInterface > void someMethod (T parameter)
{
// do something ...
}
Я бы предложил дать ответ в первом абзаце, а затем продолжить объяснение. Кроме того, использование идентификаторов, таких как 'CLASS' и' INTERFACE', вероятно, будет недооценено. Я бы предпочел использовать метасинтатические переменные типа 'Foo',' Bar' и 'Baz' или просто' A', 'B',' C' или что-то менее надуманное. Но кроме этого +1 –
Да, этот ответ правильный, но трудно найти, какой бит является фактическим ответом. Это один лайнер, похороненный прямо в конце кода, а остальное - пух. Некоторые объяснения были бы хорошими. Рад, что имена идентификаторов были исправлены. –
Использование &
создать союз:
<T extends Foo & Bar>
Все, что после первого типа должен быть интерфейс.
class MyClass {}
interface MyInterface {}
public <T extends MyClass & MyInterface> void myMethod(T param) {}
- 1. Убедитесь, что общий тип реализует определенный интерфейс
- 2. Чтобы проверить класс или интерфейс, реализует или расширяет определенный интерфейс
- 3. Требование аргумента расширяет определенный класс И реализует конкретный интерфейс
- 4. C# список «Тип», который реализует определенный интерфейс
- 5. Как гарантировать, что класс реализует определенный интерфейс в C#
- 6. реализует интерфейс расширяет ArrayList класс
- 7. Как ссылаться на класс, который расширяет класс и реализует интерфейс
- 8. boost_assert что класс параметр реализует определенный метод
- 9. Класс реализует интерфейс, который расширяет другой интерфейс
- 10. Как найти класс во внешней ссылке, которая реализует определенный интерфейс?
- 11. Java-атрибут, который реализует определенный интерфейс
- 12. Как вы укажете, что класс будет иметь определенный статический метод?
- 13. Можно ли оценить, расширяет ли интерфейс класса определенный базовый класс?
- 14. имеют Autofac throw, если тип назначения не реализует определенный интерфейс
- 15. Метод аргумент расширяет класс реализует интерфейс
- 16. конвертировать интерфейс {} в определенный тип
- 17. Как определить, является ли тип реализует определенный общий тип интерфейса
- 18. Общий класс, который расширяет класс и реализует интерфейс
- 19. Имеет ли класс B, который реализует интерфейс I, который расширяет интерфейс J, также расширяет тип I?
- 20. Как насмехаться над объектом, который расширяет класс и реализует интерфейс?
- 21. Как правильно документировать, что параметр метода должен быть именем класса, которое реализует определенный интерфейс?
- 22. Как вы можете назвать класс, который реализует определенный интерфейс, не зная его имени?
- 23. как сохранить класс, который расширяет и реализует интерфейс с Proguard
- 24. Обеспечение того, что тип Dart реализует интерфейс
- 25. класса и расширяет абстрактный класс и реализует интерфейс
- 26. Общая карта класса, которая расширяет определенный класс
- 27. ActionScript: Определить, что суперкласс выполняет определенный интерфейс?
- 28. Java: как создать общий класс, для которого требуется тип данных, который расширяет класс и реализует интерфейс?
- 29. Тип параметра метода Java и соответствие интерфейса
- 30. Возвращаемый тип метода, который реализует интерфейс
возможно дубликат [Как передать несколько параметров универсальных при удлинении общего класса] (http://stackoverflow.com/questions/20716651/how-to-pass-multiple-generic-parameters-when-extending -a-generic-class) – khelwood