NoSuchMethodError beim Aufruf von Java-Code von scala

8

Wenn ich folgenden Code in der scala REPL-Konsole ausfühle:

%Vor%

NoSuchMethodError Ausnahme wird ausgelöst:

%Vor%

Scala 2.9.0.1, Java 1.6.0_25

Warum wird hier eine Ausnahme ausgelöst? Derselbe Code, der von Java ausgeführt wird, verhält sich wie erwartet (wirft NoSuchElementException ).

    
tonek 29.05.2011, 16:02
quelle

1 Antwort

5

Dies ist ein Compilerfehler, der sowohl Scala 2.8 als auch 2.9 betrifft, wo der Compiler nicht die richtige gelöschte Methodensignatur berechnet. Mir ist kein Fehlerbericht bekannt.

Kompilieren der Methode:

%Vor%

Ergebnisse in den folgenden Bytecode:

%Vor%

Bitte beachten Sie, dass der Bytecode bei Offset 9 eine statische Methode mit dem Rückgabetyp Comparable aufruft, während der tatsächliche Collections.max den Rückgabetyp Object hat:

%Vor%     
notnoop 29.05.2011, 18:29
quelle

Tags und Links