Рассмотрим:имя Дженерики столкновение
public interface Foo<T> {
public static class X{}
public void foobar(T t);
}
public class Bar<X> {
Foo<X> foo = new Foo<X>() {
public void foobar(X t) {}
};
}
Я не нашел способ выразить, что я имею в виду X
от Bar<X>
и не Foo.X
в foobar(X t)
реализации. Нет другого пути, кроме переименования общего параметра X
в Bar
или статического внутреннего класса?
Это выглядит не так ... может вам встраивать публичный класс (даже статический) внутри интерфейса? –
Да, если вы переименовываете либо статический внутренний класс, либо общий параметр Bar, он компилируется. – Landei
@ Даниэль ... Да, вы можете. Это выглядит забавно, но вполне допустимо. –