ciao!

c'è qualcosa che mi sfugge sui generici.
allora, ho una classe con un metodo che legge un file json:
codice:
public class ReadJson {

    private final Gson gson;

    public ReadJson() {
        gson = new Gson();
    }

    public <T> List<T> readJson(File file, Class<T> type) throws IOException {
        ArrayList<T> list = new ArrayList<>();
        JsonParser parser = new JsonParser();
        try (BufferedReader bf = new BufferedReader(new FileReader(file))) {
            JsonArray jarray = parser.parse(new JsonReader(bf)).getAsJsonArray();
            for (JsonElement e : jarray) {
                T element = gson.fromJson(e, type);
                list.add(element);
            }
        }
        return list;
    }
}
poi ho ad esempio una classe Book di questo tipo:
codice:
public class Book {

    public int id;
    public String title;
    public String author;
    public String editor;
    public double price;
    public String isbn;
    public String note;
}
fin qui nessun problema.
ora devo riempire una TableView in JavaFX.
questo il controller:
codice:
public class ControllerMain<T> {

    private ReadJson jsonRead = new ReadJson();

    @FXML
private TableView tblFilm;

    @FXML
private TextField txtSearch;

    @FXML
public void initialize() {
        try {
            List<T> listBooks = jsonRead.readJson(new File(UrlAndPath.JSON_AUTORI), (Class<T>) Book.class);
            System.out.println(listBooks);
            //ObservableList<Book> list = FXCollections.observableArrayList(listBooks);
} catch (IOException ex) {
            GenericDialog.showDialog(ex.getMessage(), Alert.AlertType.ERROR);
        }
    }
}
il System.out mi stampa gli oggetti Book, quindi direi che è tutto a posto.
il problema è la riga commentata.
questo il metodo observableArrayList (che fa parte del jdk ovviamente, non è fatto da me):
codice:
public static <E> ObservableList<E> observableArrayList(Collection<? extends E> col) {
    ObservableList<E> list = observableArrayList();
    list.addAll(col);
    return list;
}
che modifiche dovrei fare secondo voi??