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?
Warum Sie Leute abstimmen? Gib mir einen Grund. – KayV
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. –
@ greg-449 Hinzugefügt Getter und Setter auch. – KayV