java - android - 为两个列表包装器创建通用接口(interface)

标签 java list generics types interface

我必须对两种类型的列表执行类似的方法。

private List<WifiConfiguration> wifiConfigurations;
private List<ScanResult> mScanResults;

我需要扫描两个列表并查找某些特定项目,因此我想创建一个接口(interface)来包装它们,然后实现每个 doesListContains 方法。

public interface IWifiListWrapper {
    boolean doesListContains(IWifiInfo wifiInfo);
    //  <T> void setList(List<T> wifiList);
}

例如,一个实现是:

public class ScanResultsListWrapper implements IWifiListWrapper {

    private List<ScanResult> mScanResults;

    @Override
    public boolean doesListContains(IWifiInfo wifiInfo) {
       ...
    } 
}

这一切都很好。

现在,我还需要一个 setList 方法来将每个实现中的列表设置为其特定的列表类型(WifiConfigurationScanResult)。

看起来应该用泛型以某种方式实现,但我不太确定我该怎么做..我确实需要以某种方式在开头声明每个列表的类型,正确?所以我可以传递一个匹配的 List 类型。

我该怎么办?

最佳答案

public interface IWifiListWrapper<T> {
    boolean doesListContains(IWifiInfo wifiInfo);
    void setList(List<T> wifiList);
}

您还可以添加类型限制,例如 T extends WifiInfo

public class ScanResultsListWrapper implements IWifiListWrapper<ScanResult>      {
    private List<ScanResult> mScanResults;

    @Override
    public boolean doesListContains(IWifiInfo wifiInfo) {    
        ...
    } 
    @Override
    public void setList(List<ScanResult> wifiList) {
        ...
    }
}

关于java - android - 为两个列表包装器创建通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39466987/

相关文章:

java - java中处理多个异常

C:创建结构体集合/创建整数列表

c# - 判断泛型类类型是否需要实例化

generics - 这个通用类型

java - 有什么方法可以让 Quartz 的 DailyTimeIntervalTrigger 在备用时区运行?

java - 为什么按 'false' 不会打破这个 java 循环?

java - Arquillian 运行模式

python - bool 值到一个列表中的列名,dataframe pandas python

python - 如何将列表迭代到元组中

c# - C# 泛型可以有特定的基类型吗?