Я работаю над серией классов, которые все наследуют от одного базового абстрактного класса.
Чтобы отслеживать все эти дочерние классы, я хотел бы реализовать что-то вроде GUID - для моих целей это не обязательно должен быть фактический GUID, просто int, уникальный для каждого экземпляр дочернего класса. Инкрементное int - это то, что я надеялся использовать.
Мне бы хотелось реализовать следующее в моем абстрактном классе:
abstract class ParentObject{
static int GUID = 0;
//other stuff
}
после этого каждый дочерний класс в своем конструкторе будет иметь myGUID = GUID++;
Однако всякий раз, когда я пытаюсь это сделать, в IDE обработки появляется следующая ошибка:
Поле GUID не может быть объявлено статическим; статические поля могут быть только
объявлено в статических типах или типах верхнего уровня.
Из-за того, как Processing обрабатывает файлы классов (все является внутренним классом), у меня не может быть статических членов класса. Какие есть варианты дублирования этой функции другими способами?
Редактировать: Это делается в обработке и IDE обработки. Класс ParentObject равен в своем собственном файле обработки.
Edite2: Я узнал, что причина обработки отличается от Java в том, что все классы обработки являются внутренними классами. По этой причине я повторно добавил тег Java и переформулировал вопрос.