Warum unterbricht ein Aufruf eines großen Array-Konstruktors den Scala-Compiler?

8

Ich mache einige Bildverarbeitungen für einen Job und schrieb Dinge mit Im4Java. Um einige Unit-Fälle zu schreiben, habe ich beschlossen, ein lokales Bild als Byte-Array im Code zu speichern. Ich nahm ein einfaches Testbild

Und dann wie folgt in das Byte-Array konvertiert:

%Vor%

Und dann fügen Sie diese Bytes in einen Array[Byte] apply-Konstruktor ein:

%Vor%

Als ich versuchte, dies zu kompilieren (siehe die vollständige Scala-Datei in diesem Geiste ), war ich überrascht, dass es kaputt ging der Tipper des Compilers! Ich bekomme den folgenden Stacktrace (ich habe es ein wenig abgeschnitten):

%Vor%

Ich benutze den Scala 2.10.5 Compiler und java jdk1.7.0_79

Ich werde wahrscheinlich nur ein kleineres Bild oder etwas verwenden, um mein Problem zu beheben, aber ich würde gerne wissen, warum der Compiler dies tut und ob es behoben werden kann?

    
EdgeCaseBerg 22.07.2015, 19:03
quelle

1 Antwort

6

Nun, ich habe versucht, Ihr Problem zu reproduzieren und neueren scalac (2.11.7) hat eine bessere Fehlermeldung (hoffe, es klärt das Problem):

%Vor%

Es sieht also genauso aus wie @ Marius in Kommentaren bemerkt , Sie treffen" 64K Bytecode pro Methode "Grenze durch JVM auferlegt.

    
om-nom-nom 22.07.2015, 19:15
quelle

Tags und Links