Если вы не можете изменить класс напрямую (возможно, потому что это встроенный класс?), Не могли бы вы создать оболочку или подкласс, который наследует оригинал?
public class subFoo extends foo
{
protected static int count = 0;
public subFoo()
{
count++;
super();
}
protected void finalize() throws Throwable
{
count--;
super.finalize();
}
public static int getInstanceCount()
{
return count;
}
}
Этот примерявляется Java и может иметь некоторые проблемы с синтаксисом, потому что я немного заржавел.
Конечно, вы должны быть уверены, что все ваши foo
будут повторно объявлены как subFoo
в остальной части вашего кода.