Método no tipo Map não é aplicável

Eu tenho o seguinte método JAVA implementado devido a uma interface:

 public String importDocument(ImportSource source, Map paramMap); 

Quando eu tento fazer o seguinte, recebo um aviso de compilation. Snippet:

 paramMap.put("Key", "Value"); 

Erro:

O método put (String, capture # 1-of? Extends Object) no tipo Map não é aplicável para os argumentos (String, String)

Por quê?

 ? extends Object 

Você está usando curinga genérico. Você não pode executar operações add porque o tipo de class não é determinado. Você não pode adicionar / colocar nada (exceto nulo).

Para mais detalhes sobre o uso de curingas, você pode consultar os documentos do oracle.

 Collection c = new ArrayList(); c.add(new Object()); // Compile time error 

Como não sabemos o que o tipo de elemento c representa, não podemos adicionar objects a ele. O método add() recebe argumentos do type E , o tipo de elemento da coleção. Quando o parâmetro de tipo real é ? , significa algum unknown type . Qualquer parâmetro que passamos para adicionar teria que ser um subtipo desse tipo desconhecido. Como não sabemos de que tipo isso é, não podemos passar nada. The sole exception is null, which is a member of every type .

    Intereting Posts