Я столкнулся с той же ошибкой компиляции, и, насколько я могу судить, это крайний случай в спецификации для типов пересечений (универсальные типы с множественными связями), и решение невозможно.
Небольшой тестовый кейс:
public interface InterfaceA {
public Object clone();
}
public interface InterfaceB {}
public class ClassA<T extends InterfaceA> {} // ok
public class ClassB<T extends InterfaceA & InterfaceB> {} //not ok
У вас не может быть типа пересечения, содержащего какие-либо интерфейсы, содержащие любой метод, сигнатура которого совпадает с закрытым методом в базовом классе (в данном случае, неявно Object). Однако это не относится к объекту или клону:
public abstract class Base {
protected abstract void m();
}
public interface Interface {
public void m();
}
public class Class<T extends Base & Interface> {} // not ok
Вот соответствующая ошибка Oracle , помеченная как «Не дефект».
Вот соответствующая ошибка Eclipse , в которой компилятор был изменен для получения той же ошибки, чтобы соответствовать javac. Похоже, это было изменением для Индиго 3.7, что объясняет, почему некоторые люди могли размножаться, а другие - нет.