Collectors.groupingBy basado en la propiedad de clase estática anidada

Consorcio inactivo :

Tengo una Collegeclase con clases anidadas estáticasDept

Universidad

class College {
private String collegeName;

private Dept dept;

public Dept getDept() {
    return dept;
}

public void setDept(Dept dept) {
    this.dept = dept;
}

public String getCollegeName() {
    return CollegeName;
}

public void setCollegeName(String collegeName) {
    CollegeName = collegeName;
}

public static class Dept {

    private String deptName;

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
        }

    }

 }

Tengo listde Collegeobjetos y tratando groupingBybasado en deptName i,e (Map<String>, List<College>), pero no hubo suerte hasta el momento y que da un mensaje de error de compilación

List<College> list = new ArrayList<College>();
list.stream().collect(Collectors.groupingBy(College.Dept::getDeptName));

Error de compilación

The method collect(Collector<? super College,A,R>) in the type Stream<College> is not applicable for the arguments (Collector<College.Dept,capture#1-of ?,Map<String,List<College.Dept>>>)
Andy Turner:
College.Dept::getName

es una Function<College.Dept, String>. No acepta una Collegecomo una entrada.

Use un lambda para construir un Function<College, String>:

groupingBy(c -> c.getDept().getName())

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=225868&siteId=1
Recomendado
Clasificación