クラスアクターのインスタンスを作成するときにオブジェクトファクションを追加します。 オブジェクトが作成されるたびに自動インクリメントを作成する方法と、「破棄する」ときにデクリメントする方法
//Constructor
Actor(String name, Race race, Faction faction){
this.name = name;
this.race = race;
this.faction = faction;
}
私は毎回オブジェクト
派閥が
俳優オブジェクト派閥単位内部の自動カウントによって使用されていることを望んでいた、と毎回、オブジェクト
俳優は、それがデクリメント破壊されます。
public class Faction {
private String name;
private int membersNum;
private ArrayList<Faction> knowFactionList = new ArrayList<Faction>();
private ArrayList<Relation> factionRelationList = new ArrayList<Relation>();
Faction(String name){
this.name = name;
}
public void addBattleMember(){
membersNum++;
}
public void removeBattleMember(){
membersNum--;
}
このメソッドをクラスFaction Manager内で使用してリストを作成し、オブジェクトアクターが使用されなくなったときに手動で減らしています。
public void buildActiveFactionsOnBattle(ArrayList<Actor> actorList) {
for (Actor act : actorList) {
act.getFaction().addBattleMember();
if (!activeFactionsOnBattle.contains(act.getFaction()))
activeFactionsOnBattle.add(act.getFaction());
}
}
これを行う最善の方法は静的変数です。その俳優がコンストラクタでファクションを使用するたびにインクリメントします。 –
「オブジェクトが破壊された」ということはどういう意味ですか?あなたのアプリが終了したとき、またはJVMによってガベージコレクションされたときを意味しますか? –