ciao andbin!

innanzitutto, buon natale (anche se ormai è passato)!

prendendo il primo punto, relativo ai genercis.
mi sono letto parecchi esempi, ma non sono riuscito a capire come applicarlo al mio caso.
io ho due metodi che hanno la stessa logica, e che solo due differenze:
-il file da cui leggono
-il tipo di lista che creano (ArrayList<Author> o ArrayList<Editor>)

volendo fare un unico meteodo generico:
-il file glielo potrei passare come parametro
-dovrei creare una lista generica -> ma qua mi sorgono delle domande
banalmente ho fatto una prova del genere (per capire un pò meglio di che parliamo), ma da errore:
codice:
    public List<?> getAllAuthorsEditors(String fileJson) throws IOException {
        File file = new File(fileJson);
        List<?> list = new ArrayList<>();
        if (file.exists()) {
            Gson gson = new Gson();
            JsonParser parser = new JsonParser();
            try (BufferedReader bf = new BufferedReader(new FileReader(file))) {
                JsonArray jarray = parser.parse(new JsonReader(bf)).getAsJsonArray();
                for (JsonElement e : jarray) {
                    Author au = gson.fromJson(e, Author.class);
                    list.add(new Author(au.id, au.name));
                }
            }
        }
        return list;
    }
e cmq non è molto generalizzato, perchè Author glielo impongo nel metodo, quindi sarei di nuovo da capo.

ho visto che potrei creare una classe generica di questo tipo:
codice:
public class AEContainer<T> {

    private T t;

    public void add(T t) {
        this.t = t;
    }

    public T get() {
        return t;
    }
}
ma cmq non riesco ad usarla applicato al mio esempio.