2014-11-07 3 views
3

Я нашел странный вопрос с java8:Java8 затмение компилятор ошибка

В методе класса у меня есть следующий код:

int id; 
... 
new Key<Integer>(id) 

Чтобы удалить «лишние спецификации аргументов типа» как ключ, Я пишу:

new Key<>(id) 

Тогда я получаю

java.lang.VerifyError: Bad type on operand stack 

Во время выполнения ... !!!! Причина: компилятор пропускает заменить ИНТ на целом число ...

Надеется, что это поможет ребятам, как я, которые были укомплектовать dispointed такой среды выполнения Exeption с их программой просто переходя от java7 к java8 ....

версия: Luna Release (4.4.0) Сложение ID: 20140612-0600

Java версия "1.8.0_25" Java (TM) SE Runtime Environment (сборка 1.8.0_25-B17) Java HotSpot (TM) 64-разрядная серверная VM (сборка 25.25-b02, смешанный режим)

ADDED

Вот полный простой пример:

package bug; 

public class Bug { 

    public static void main(String[] args) { 
     Bug.class.getConstructors(); 
     System.out.println("test ok"); 
    } 

    public Bug() { 
     BugCondition("", new Key<Integer>(1)); 
     //BugCondition("", new Key<>(1)); 
    } 

    public static final <C extends Object> void BugCondition(C test, Key<?> key) { 
    } 

    public class Key<K> { 
     public Key(K value) { 
     } 
    } 
} 

Кажется, вопрос пришел от дженериков (замените C на строки):

public static final <C extends Object> void BugCondition(C test, Key<?> key) { 
} 
+0

что подпись ключа класса и его конструкторов? – dkatzel

+0

См. Http://examples.javacodegeeks.com/java-basics/exceptions/java-lang-verifyerror-how-to-solve-verifyerror/ по причинам, почему JVM выбрасывает 'VerifyError' – dkatzel

+0

Пожалуйста, покажите полный и компилируемый пример, который воспроизводит проблему. – assylias

ответ

0

Ваш пример компилирует прекрасно с Eclipse Mars. Я использую следующий билд:

Version: Mars Release Candidate 2 (4.5.0RC2) 
Build id: 20150528-0540 

Я подозреваю, что этот вопрос был решен в то же время (как и многие другие вопросы компиляции Eclipse,/Java8)

Смежные вопросы