> 
> **Possible Duplicate:**  
> 
> [Adding an element inside a wildcard type ArrayList](https://stackoverflow.com/questions/12082780/adding-an-element-inside-a-wildcard-type-arraylist) 
> 
> 
> 

I can't understand why compiler considers this code wrong:

```
Pair<Manager> managerBuddies = new Pair<Manager>(ceo, cfo);
Pair<? extends Employee> wildcardBuddies = managerBuddies; // OK
wildcardBuddies.setFirst(lowlyEmployee); // compile-time error

```

Methods that `Pair<? extends Employee>` has are:

```
? extends Employee getFirst()
void setFirst(? extends Employee)

```

It's not clear why we can't set value, because `Employee` is subtype of `? extends Employee`.
Java tutorial tries to explains it, but I still have my question.
Could someone clarify please?