2016-12-02 2 views
-1

konvertieren Ich habe einen einfachen Code, wo ich eine Liste meines benutzerdefinierten Klassenobjekts in eine Map> umwandle . Der Code ist wie folgt:Java Stream - Kompilierzeit Fehler - Typ stimmt nicht überein: kann nicht von Map <Objekt, Objekt> zu Map <Integer, Liste <String>>

List<NPDto> appList = new ArrayList<NPDto>(); 
//list gets populated though some other method 

//Here is conerting code where i get compile time error 
final Map<Integer, List<String>> appMap = appList.stream() 
               .collect(
               Collectors.toMap(
                np -> NumberUtils.toInt(np.getPId()), 
                np -> Arrays.asList(np.getAppsReceived().split(",")) 
              )); 
// Here is my DTO            
public class NPDto { 

    private String pId; 
    private String appsReceived; 

    public String getPId(){ 
    return pId; 
    } 

    public void setPId(String pId){ 
    this.pId = pId; 
    } 

    public String getAppsReceived(){ 
    return appsReceived; 
    } 

    public void setAppsReceived(String appsReceived){ 
    this.appsReceived = appsReceived; 
    } 
} 

Aber, ich bin ein Compiler-Fehler erhalten, wie folgt:

Type mismatch: cannot convert from Map<Object,Object> to Map<Integer,List<String>> 

ich mit Java SE 8 am Kompilieren [1.8.0_91]

Weiß nicht, wo ich falsch liege. Kann mir bitte jemand helfen?

+0

Warum Sie Leute abstimmen? Gib mir einen Grund. – KayV

+0

Nicht mein Downvote, aber wahrscheinlich, weil du uns kein [mcve] gezeigt hast. Zeigen Sie uns insbesondere die tatsächlichen Erklärungen der Getter in 'NPDto'. Die Verwendung falscher Methodennamen kann diesen Fehler verursachen. –

+0

@ greg-449 Hinzugefügt Getter und Setter auch. – KayV

Antwort

1

Sie müssen eine kleine Änderung vornehmen, da split einen String [] zurückgibt.

np -> Arrays.asList(np.getAppsReceived().split(",")) 
+0

Das ist, was ich dies in eine Liste mit Arrays.asList konvertieren – KayV

+0

@KaranVerma das ist lustig Ich nahm den gleichen Code, den Sie haben und es kompiliert nur Datei. Was gibt NumberUtils zurück? ein Integer, nehme ich an? – Eugene

+0

Ja, es gibt Integer zurück. – KayV

Verwandte Themen