2017-12-29 57 views
0

私はクリケットのトーナメント管理システムを作っています。私はPlayerと2つのクラスBatsmanBowlerという名前のクラスがあります。同じテキストファイルに子クラスを格納してからそれらを取得する

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

打者クラスは打者特定のメンバーを持ち、ボウラーのクラスは、いくつかのボウラー、特定のメンバーがあります。Playerクラスはデータメンバを以下ました。

私は、BatsmanクラスとPlayerクラスの両方で実装されているPlayerクラスにabstract addRecordメソッドを持っています。両方の子クラスに共通のファイルを使用して、のIDがファイルに重複しないようにします。
そして、私は、必要に応じてバツマンの唯一のボウラーのレコードをファイルから取り出すことができ、それらからバットマンまたはボウラーのオブジェクトの配列を作ることができます。

Class.forName()を使用する方法はありますか?クラス名を含む文字列を使用して、実行時に動的にそのクラスのインスタンスを作成します。

助けてください!

+0

私が何を全くわからないんだけどあなたは尋ねていますが、instanceofを使ってオブジェクトが作成された後にそのオブジェクトがバットマンかボウラーかをチェックすることができます。 – arkdevelopment

+0

'Batsman'と' Bowler'オブジェクトの両方に固有のIDを提供するために別のクラスを作成してください。 –

+0

ファイルではなくデータベースを使用することをお勧めします。 - ファイルからレコードを読み取ることができません。 – fab

答えて

0

これはあなたのために開始することができます:あなたがロックして、ソリューションの保存スレッドを必要とするかもしれないUIで作業している場合

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(); 
     } 
    } 
} 

... http://winterbe.com/posts/2015/04/30/java8-concurrency-tutorial-synchronized-locks-examples/

関連する問題