如何在每次创建对象时创建一个自动增量,并在它被销毁时减少#34;

时间:2017-07-27 18:28:04

标签: java auto-increment

当我创建类actor的实例时,我添加了对象派。

//Constructor
Actor(String name, Race race, Faction faction){
    this.name = name;
    this.race = race;
    this.faction = faction;        
}

我希望每当 actor 使用对象 faction 时,对象派系内的自动计数会递增,并且每次对象 actor < / strong>被破坏了它的减量。

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中使用此方法来创建列表,并在对象actor停止使用时手动减少。

 public void buildActiveFactionsOnBattle(ArrayList<Actor> actorList) {
    for (Actor act : actorList) {
        act.getFaction().addBattleMember();
        if (!activeFactionsOnBattle.contains(act.getFaction()))
            activeFactionsOnBattle.add(act.getFaction());
    }
}

2 个答案:

答案 0 :(得分:1)

您需要将逻辑挂钩在JVM中的用户空间下。本机JVM代理能够执行此操作。

参考https://github.com/JigarJoshi/jvm-objects-inspector

答案 1 :(得分:0)

  

“执行此操作的最佳方法是静态变量,并将其递增   演员在构造函数中使用派系的时间--Fady Saad 1分钟   前“

我会更容易走这条路。

班上某处做了以下事情:

static int fractionCount = 0;

静态变量使得分数对象的所有实例都引用相同的变量。

从一个类更改静态变量将更改该类的所有实例的变量。