Ошибка Java «слишком много констант»
Я разрабатываю приложение, которое генерирует и компилирует классы во время выполнения. Это иногда создает огромное количество сгенерированного кода.
В одном из наших тестов я получаю сообщение об ошибке от JVM:
TestClass.java:83865: too many constants
Просто это. Я видел другие сообщения о подобной ошибке, но в этих случаях сообщение об ошибке жалуется на постоянный пул. Но в этом случае это не так.
Если это означает, что лимит на постоянный пул JVM достигнут, что это значит? Я имею в виду, что это за константы с точки зрения Java-кода? Классовые методы? Поля? Литералы? У меня нет ни статических, ни финальных методов, ни полей.
Можете ли вы дать мне некоторые выводы?
РЕДАКТИРОВАТЬ:
Разделение кода на несколько классов уже запланировано. Хотя это было не по этой точной причине.
Я & APOS; зная об ограничениях постоянного пула, мои сомнения были именно в том, что входит в. Сгенерированный код не имеет более 10000 методов + полей.
Я сомневаюсь, что литералы также идут в постоянный пул или нет, так как это единственная причина, по которой я вижу, поднять это число до 65K. Кажется так.