Я хочу создать интерфейс, который позволяет любому классу реализации, как это:входного интерфейса Java аргумент продолжается от базового класса
public interface MyInterface
{
void doSomething(<A extends MyBaseClass> arg1);
}
public class MyImpl implements MyInterface
{
void doSomething (SomeClassExtendsMyBaseClass arg1)
{
// do something
// SomeClassExtendsMyBaseClass is a class that extends MyBaseClass
}
}
я получаю синтаксическую ошибку при выполнении указанных выше. Может ли кто-нибудь показать мне, как достичь этой цели?
Благодаря
+1 - Это лучшее решение, если общий тип строго ограничен одним методом. – Jeremy
Нет никакого смысла в том, чтобы метод принимал аргумент типа 'T extends MyBaseClass', если вам не нужно делать что-то еще с' T', например, вернуть объект типа 'T' или ограничить другой параметр, используя этот тип , Как бы то ни было, 'void doSomething (MyBaseClass arg1)' будет более уместным. Кроме того, OP явно хочет, чтобы реализации его интерфейса могли ограничивать тип 'MyBaseClass', который принимает метод; общие методы позволяют _caller_ указывать тип. – ColinD
@Colin: «если вам не нужно что-то делать с' T' »- Разве это не то, чего хочет OP? – Jeremy