Ошибка Java «слишком много констант»

Я разрабатываю приложение, которое генерирует и компилирует классы во время выполнения. Это иногда создает огромное количество сгенерированного кода.

В одном из наших тестов я получаю сообщение об ошибке от JVM:

TestClass.java:83865: too many constants

Просто это. Я видел другие сообщения о подобной ошибке, но в этих случаях сообщение об ошибке жалуется на постоянный пул. Но в этом случае это не так.

Если это означает, что лимит на постоянный пул JVM достигнут, что это значит? Я имею в виду, что это за константы с точки зрения Java-кода? Классовые методы? Поля? Литералы? У меня нет ни статических, ни финальных методов, ни полей.

Можете ли вы дать мне некоторые выводы?

РЕДАКТИРОВАТЬ:

Разделение кода на несколько классов уже запланировано. Хотя это было не по этой точной причине.

Я & APOS; зная об ограничениях постоянного пула, мои сомнения были именно в том, что входит в. Сгенерированный код не имеет более 10000 методов + полей.

Я сомневаюсь, что литералы также идут в постоянный пул или нет, так как это единственная причина, по которой я вижу, поднять это число до 65K. Кажется так.

Ответы на вопрос(4)

Ваш ответ на вопрос