Java 带有泛型参数接口的回调

Java 带有泛型参数接口的回调,java,generics,Java,Generics,我有一个通用的容器接口,用于用Java代码抽象出AndroidSparseArray: public interface MyContainer<T> { T get(int key); void forEach(Consumer<T> consumer); } 但我得到一个编译器错误: error: incompatible types: Consumer<Interface> cannot be converted to Consumer

我有一个通用的容器接口,用于用Java代码抽象出Android
SparseArray

public interface MyContainer<T> {
    T get(int key);
    void forEach(Consumer<T> consumer);
}
但我得到一个编译器错误:

error: incompatible types: Consumer<Interface> cannot be converted to Consumer<Implementation>
错误:不兼容类型:无法将使用者转换为使用者

如何更改
MyContainer
接口以允许
使用者
传递给我的类?

MyContainer
中,
使用者
的类型参数可以将
T
作为下限

void forEach(Consumer<? super T> consumer);

void-forEach(Consumer)Iterable允许在其forEach()方法中传递消费者吗?查看javadoc,并执行相同的操作。尝试将MyContainer#forEach更改为
void-forEach(Consumer@f.khantsis:这倒过来了:它必须是
Consumer
,这是无效的语法。嗯。我不知道我可以在那里使用
super
void forEach(Consumer<? super T> consumer);