Java 嵌套泛型类型接口

Java 嵌套泛型类型接口,java,android,generics,Java,Android,Generics,我正在尝试创建一个接口,我的一些类将实现该接口。虽然这适用于一种类型的T: public interface AsyncResponse<T> { void processFinish(T output); } 公共接口异步响应{ void processFinish(T输出); } 这允许使用processFinish等 让这项工作适用于通用列表似乎并不可行。或者至少,我无法理解如何允许以下情况之一,但不限于此: LinkedHashSet输出 ArrayList输出

我正在尝试创建一个接口,我的一些类将实现该接口。虽然这适用于一种类型的T:

public interface AsyncResponse<T> {
    void processFinish(T output);
}
公共接口异步响应{
void processFinish(T输出);
}
这允许使用
processFinish

让这项工作适用于通用列表似乎并不可行。或者至少,我无法理解如何允许以下情况之一,但不限于此:

  • LinkedHashSet输出
  • ArrayList输出
  • 我尝试了以下方法,但无效:

    public interface AsyncGenericResponse<T<X>>{
        void processFinish(T<X> output);
    }
    
    公共接口AsyncGenericResponse{
    void processFinish(T输出);
    }
    


    public interface AsyncGenericResponse泛型类型仅为
    T
    ,该方法接受
    LinkedHashSet
    ,但此处的类声明中没有“嵌套泛型”

    以下代码可以很好地编译:

    public interface AsyncGenericResponse<T>{
        void processFinish(LinkedHashSet<T> output);
    }
    
    公共接口AsyncGenericResponse{
    void processFinish(LinkedHashSet输出);
    }
    
    < /代码>也可以考虑使用<代码>集合>代码>超级类型,而不是特定的<代码> SET>代码>或“代码>清单>代码>。如果您只需要一个集合,但不想在参数级别上指定确切的类型。@ Matthijs,但在这种情况下,它将适用于<代码>列表类型,但是它将不再适用于类型,例如,
    String
    ?但在本例中,没有选项将LinkedHashSet和?在我的界面中使用了?@Unheilig,这在这种情况下确实是正确的。但是,我可以删除LinkedHashSet,只保留T。这允许我在实现接口时设置类型。这并不理想,但如果不可能,就必须这样做。@Matthijs我想知道它是否可以更通用,以便对这两种情况都有效。谢谢你的回答。
    public interface AsyncGenericResponse<T>{
        void processFinish(LinkedHashSet<T> output);
    }