У меня есть общий класс:Параметр типа Java скрывает общий тип?
public class Widget<COMMAND> {
// ...
}
Так что я могу создать экземпляры ему нравится:
Widget<Fizz> fizzWidget = new Widget<Fizz>();
Тогда у меня есть ABC BaseWidgetProcessor
, что я хочу принимать Widget
S любого типа:
public abstract class BaseWidgetProcessor<Widget<COMMAND>> {
public abstract COMMAND process();
}
С конкретными impls:
public abstract class AstroWidgetProcessor<Widget<COMMAND>> {
@Override
public COMMAND process() {
// ...
}
}
т.д.
Проблема заключается в том, с BaseWidgetProcessor
:
public abstract class BaseWidgetProcessor<Widget<COMMAND>> {
public abstract COMMAND process();
}
Я получаю ошибку синтаксиса:
Syntax error on token(s), misplaced construct(s)
Когда я изменить его:
public abstract class BaseWidgetProcessor<Widget> {
public abstract COMMAND process();
}
Ошибка уходит, bu t теперь я получаю предупреждение компилятора:
The type parameter Widget is hiding the type Widget
Что здесь происходит?!? Почему ошибка, а затем соответствующее предупреждение? Каков правильный (синтаксический) способ установить это?
лол. Fizzwidget. «Ты, черт возьми, дети, сойди с газона! –
Извините, все - я сделал исправление –
Попробуйте 'public abstract> BaseWidget '? –
fge