si infatti così funziona:
codice:
    public <T> Map<String, Long> groupJson(File file, TypeToken<T> typeToken) throws IOException { 
        Map<String, Long> map; 
        try (JsonReader reader = new JsonReader(new FileReader(file))) { 
            List<Book> list = gson.fromJson(reader, typeToken.getType()); 
            map = list.stream().collect(Collectors.groupingBy(Book::getAuthor, Collectors.counting())); 
        } 
        return map; 
    }
allora, cercando di evolvere ulteriormente il metodo:
- dovrei raggruppare sia per getAuthor, che per getEditor (in punti diversi del programma), ma non saprei come indicare per cosa ragguppare
- se volessi generalizzare la lista, sarebbe possibile (List<Book>)? me lo chiedo perchè mi viene in mente che se lo generalizzo per List<T>, ovviamente poi non ha accesso diretto ai metodi getAuthor e getEditor, quindi come si può generalizzare la lista? (penso che questa domanda si indirettamente collegata alla prima....).