2017-12-29 44 views
0

Ich mache ein Cricket-Turnier-Management-System. I hat eine Klasse mit dem Namen Player und zwei Kinderklassen Batsman und Bowler. Die Player Klasse hat folgende Datenelemente:Speichern von untergeordneten Klassen in derselben Textdatei und dann abzurufen

private String name; 
private int ID; 
private int age; 
private int height; 

jetzt Batsman Klasse Batsman Mitgliedern und Bowler-Klasse hat einige spezifische Mitglieder Bowler.

Ich habe eine abstract addRecord Methode in der Player-Klasse, die sowohl in Batsman als auch in der Player-Klasse implementiert ist. Ich möchte, dass eine gemeinsame Datei für beide untergeordneten Klassen so verwendet wird, dass ID in der Datei nicht dupliziert wird.
Und dann kann ich nur Batsmans oder nur Bowlers Aufzeichnungen aus der Datei nach Bedarf abrufen und daraus eine Reihe von Batsman- oder Bowler-Objekten machen.

Gibt es eine Möglichkeit, Class.forName() zu verwenden, und dann eine Instanz dieser Klasse dynamisch zur Laufzeit mit einer Zeichenfolge erstellt, die den Klassennamen enthält.

Bitte helfen!

+0

Ich bin nicht ganz sicher, was Sie fragen, aber Sie können instanceof verwenden, um zu überprüfen, ob das Objekt ein Batsman oder Bowler ist, nachdem es erstellt wurde. – arkdevelopment

+0

Schreiben Sie eine separate Klasse, um eindeutige IDs für "Batsman" - und "Bowler" -Objekte bereitzustellen. –

+0

Ich würde vorschlagen, dass Sie eine Datenbank dafür und keine Datei verwenden. - Sie können nur einige 'Datensätze' aus einer Datei lesen, weil es nicht indiziert ist. – fab

Antwort

0

Dies könnte ein Anfang für Sie sein:

public class IdCounter { 

    private static Integer nextId; 

    static int getNextId(){ 
     if (nextId == null){ 
      //read file and get highest ID 
     } 
     return nextId++; 
    } 
} 


public class addRecord { 

    private String name; 
    private int ID; 
    private int age; 
    private int height; 

    private void saveRecord(){ 
     if(ID==0){ 
      ID = IdCounter.getNextId(); 
     } 
    } 
} 

Wenn Sie mit einer Benutzeroberfläche arbeiten, können Sie einen Thread speichern Lösung benötigen, mit Verriegelungs ... http://winterbe.com/posts/2015/04/30/java8-concurrency-tutorial-synchronized-locks-examples/

Verwandte Themen