Buonasera,
sono nuovo del forum, quindi se ho sbagliato qualcosa, correggetemi.

Il problema è il seguente. Come faccio a capire di che classe è un oggetto che prendo da un file??
La mia idea era di scrivere una classe generica, da poter riutilizzare, che mi consenta lettura e scrittura di oggetti su file.
Sono partito dalla semplice lettura e scrittura di una classe "Highscore", ed ho cercato poi di astrarla per ottenere il risultato (è l'approccio giusto?)

Per quanto riguarda la scrittura non ci sono problemi, passo al metodo della classe un oggetto di tipo "X", e lo faccio scrivere tramite WriteObject().
Metodo writeElement(X x) ---> outputstream.writeObject(x);

La lettura mi rimane invece un pelo più difficile. Finchè utilizzo una classe concreta (es. "Highscore"), non ho problemi, ma se utilizzo un generico, il compilatore mi chiede (giustamente) un cast...
Questo è il banale codice (che mi sembra funzionare) con "Highscore"
codice:
public List<Highscore> readElement(){        List<Highscore> list = new ArrayList<>();
        try (
                final InputStream file = new FileInputStream (this.fileName);
                final InputStream bstream = new BufferedInputStream (file);
                final ObjectInputStream ostream = new ObjectInputStream (bstream);
                )
        {
            while (true) {
                list.add(ostream.readObject());
            }
        } catch.....
E' necessario passare la classe al metodo "readElement()" o è possibile capire di che classe siano gli oggetti letti in qualche modo?
Scusate se è una domanda da novellini >.<
Grazie