Java "zu viele Konstanten" JVM-Fehler

Ich entwickle eine Anwendung, die Klassen zur Laufzeit generiert und kompiliert. Dies wird manchmal große Mengen an generiertem Code erzeugen.

Bei einem unserer Testfälle erhalte ich einen Fehler von der JVM:

TestClass.java:83865: too many constants

Nur das. Ich habe andere Berichte über einen ähnlichen Fehler gesehen, aber in diesen Fällen beklagt sich die Fehlermeldung über den konstanten Pool. In diesem Fall jedoch nicht.

Wenn dies bedeutet, dass das Limit für den konstanten Pool der JVM erreicht wurde, was bedeutet das? Ich meine, was für Konstanten sind das für Java-Code? Klassenmethoden? Felder? Literale? Ich habe keine statischen oder endgültigen Methoden oder Felder.

Kannst du mir ein paar Hinweise geben?

BEARBEITEN:

Das Aufteilen des Codes in mehrere Klassen ist bereits geplant. Obwohl es nicht aus genau diesem Grund war.

Ich kenne die Grenzen des ständigen Pools und bezweifle genau, worauf es ankommt. Der generierte Code enthält nicht mehr als 10000 Methoden + Felder.

Ich bezweifle, ob Literale auch in den konstanten Pool gehen oder nicht, da dies der einzige Grund ist, warum ich sehe, dass diese Zahl auf 65.000 erhöht wird. Es scheint so.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage