如何添加?扩展了列表

时间:2019-04-04 21:42:34

标签: java list generics collections java-8

我遇到问题。 下面我粘贴一些示例代码。

我的DefinedAddress类将从数据库中获取地址。

@Autowired
DBConnection connection;

public class DefinedAddress {

    public String getAddress() {

        List<? extends Address> addressList =connection.getAddresss("SELECT address FROM Address WHERE Id = 1;")

        return  addressList.get(0).location);
    }
}

我正在创建此类的Junit,其主要逻辑如下: 我要模拟数据库调用方法connection.getAddresss,并将返回一个具有一个地址的列表。

public class DefinedAddressTest {

    public static void main(String[] args) {
        // Create a list 
        List<? extends Address> addressList = new ArrayList<>();
        City city = new City();
        city.setLocation("CurrentLocation");
        addressList.add(city);//Compile time issue 
        //mock Defined Addrss getAddress() method to fetch the address
        Mockit.when(connection.getAddresss("Query").return(addressList );
    }
}

现在我知道addressList不允许添加城市了吗?扩展了地址,我们不确定要添加哪个对象(足够公平)

错误如下:类型为List的方法add(capture#1-of?extended Address)不适用于参数(City)

那么我该如何模拟呼叫并在这种情况下创建我的Junit测试?

1 个答案:

答案 0 :(得分:0)

创建并返回一个列表。列表也是列表,测试用例不需要地址的子类型,因为您仅访问地址的字段。