Hey galera
Hoje estava trabalhando no meu projetenho aqui no trampo e me ocorreu algo que nunca vi e muito menos entendi.
Criei uma interface public interface JSONable com um metodo public String toJson();
Então criei uma classe que a implementa public class Definition implements JSONable;
Em um dos meus servicós criei o seguinte metodo: public String toJson(List records);.
Quando fui usar o metodo o Eclipse me mandou a seguinte mensagem;
[color=red]The method toJson(List ) in the type TaskService is not applicable for the arguments (List )[/color]
Ai eu fiquei sem entender nada 
Se a minha classe Definition implementa JSONable, ela “é um” JSONable correto? Por que o metodo não a aceita?
Para corrigir, mudei a assinatura do metodo para: public String toJson(List<? [color=brown]extends[/color] JSONable> records);
Seguindo a mesma logica, e forçando um pouquinho, então todos os metodos deveriam ter algo como:
nomeDoMetodo(List<? extends Object> arg)???
Fiquei sem entender nada 
Alguem explica ahe please