#java #interface #java-8 #default-method
#java #интерфейс #java-8 #default-method
Вопрос:
interface G {
default void print() {
System.out.println("G");
}
}
class M {
public void print() {
System.out.println("M");
}
}
class GImpl extends M implements G {}
public class Wierd {
public static void main(String[] args) {
G g=new GImpl();
g.print();
}
}
я пытался использовать метод по умолчанию в интерфейсе, но при компиляции с eclipse я получаю сообщение об ошибке в строке 2 — написано удалить по умолчанию, но я компилирую и запускаю с помощью командной строки, она работает нормально, в чем может быть причина этого?
Комментарии:
1. Я полагаю, что только Luna поддерживает [Java-8], какую версию вы используете???
2. затем попробуйте ссылку, которую TAsk дал вам в ответе, я бы хотел, чтобы это сработало для Juno.
3. О Juno не может быть и речи. Самой ранней версией, которую вы можете использовать, является Kepler SR2, но для этого потребуется дополнительно применить исправление Java 8.
Ответ №1:
- Ваше eclipse по-прежнему не использует
Java8
версию, пожалуйста, проверьте, что она может быть меньше 8. - Используйте
System.out.println(System.getProperty("java.runtime.version"));
для проверки. - Вам также может потребоваться изменить путь сборки вашего проекта и уровень компилятора в eclipse.
И что более важно:
Комментарии:
1. я получил этот 1.8.0_05-b13, я думаю, только 8
Ответ №2:
Похоже, что вы установили Java 8 JDK, но ваш eclipse по-прежнему не поддерживает Java 8. Eclipse Luna поддерживает Java 8. Чтобы изменить параметры компилятора, щелкните правой кнопкой мыши ваш проект> Свойства> Компилятор Java> Установите флажок «Включить настройки, относящиеся к конкретному проекту»> Затем выберите уровень соответствия компилятора.