ไม่อนุญาตให้ @Override เมื่อใช้วิธีการเชื่อมต่อ


89

ฉันมีปัญหาที่กล่าวถึงในชื่อเรื่อง คุณสามารถพูดได้ว่าเธรดนี้ซ้ำกัน: ฉันจะปิดการตรวจสอบข้อผิดพลาดสำหรับคำอธิบายประกอบใน IntelliJ IDEA ได้อย่างไร

แต่วิธีแก้ปัญหาที่ได้รับไม่ได้ผล พวกเขาบอกว่าฉันต้องดำเนินการต่อไปนี้:

ในโครงสร้างโครงการ | กล่องโต้ตอบโครงการเปลี่ยนระดับภาษาของโครงการเป็น 6.0 - @Override ในอินเทอร์เฟซ

อย่างไรก็ตามระดับภาษาของโครงการคือ 6.0 ในขณะนี้ แต่ฉันยังคงเห็นข้อผิดพลาด

Vic นี่คือหน้าต่างและไม่มีเวอร์ชัน JVM ในระดับภาษา (น่าเสียดายที่ฉันไม่สามารถโพสต์ภาพได้เนื่องจากฉันมีชื่อเสียง 10 ประการ)


ฉันไม่สามารถโพสต์ภาพได้ แต่ไม่มีตัวเลือกใด ๆ ภายใต้ "ระดับภาษาของโครงการ" แต่เป็น "เอาต์พุตของคอมไพเลอร์โครงการ" ซึ่งไม่เหมือนกับเวอร์ชัน JVM
Nikitin Mikhail

คำตอบ:


127

หากโครงการของคุณมีหลายโมดูลให้ตรวจสอบด้วยว่าทุกโมดูลใช้ภาษาระดับ 6 ขึ้นไปหรือใช้ระดับภาษาของโปรเจ็กต์ (ดูProject Settings > Modules > xxx > Language level)

คุณอาจต้องโหลดโครงการของคุณใหม่เมื่อมีการแก้ไข


1
ใช่. ฉันมีโมดูลเดียว แต่มี cersion ภาษาที่ 5 ขอบคุณ
Nikitin Mikhail

9
เพิ่งประสบปัญหาเดียวกัน ระดับภาษาโครงการของฉันคือ 6.0 แล้ว แต่คำอธิบายประกอบ @Override ยังคงถูกเน้น ในการแก้ไขปัญหานั้นคุณสามารถเปิดไฟล์ * .iml และตั้งค่า LANGUAGE_LEVEL = "JDK_1_6" และโหลดโปรเจ็กต์ใหม่ได้
Georgy Gobozov

7
สำหรับใครก็ตามที่พบสิ่งนี้ที่ใช้เวอร์ชัน 2016.2.4 ขึ้นไปเมนูได้เปลี่ยนไปตอนนี้โครงสร้างโครงการ> โมดูล> xxx> ระดับภาษา
เวสลีย์สมิ ธ

52

ที่โมดูล / โครงการของคุณคลิกขวาเพื่อดูเมนูบริบท:

ใส่คำอธิบายภาพที่นี่

เลือกหรือกดOpen Module Settings F4ในการตั้งค่าหน้าต่าง:

ใส่คำอธิบายภาพที่นี่
ตั้งค่าสำหรับChoose Language levelส่วน


คุณควรตรวจสอบProject language levelด้วยวิธีนี้: กดCtrl+ Alt+ Shift+S

ใส่คำอธิบายภาพที่นี่


26

วิธีแก้ปัญหาที่ง่ายกว่า - แบบอินไลน์

  1. ใส่คาเร็ตบน@Overrideคำและเลื่อนคาเร็ตไปทางด้านซ้ายจนกว่าไอคอนหลอดไฟสีแดงจะปรากฏขึ้น จากนั้นคลิกที่มัน

    ใส่คำอธิบายภาพที่นี่

  2. คลิกที่Set language level to 6 - Override in interface

    ใส่คำอธิบายภาพที่นี่


วิธีการข้างต้นเป็นอีกทางเลือกหนึ่งของแนวทางต่อไปนี้:

  1. ไปที่ไฟล์> โครงสร้างโครงการ ...หรือกดCtrl+ Alt+ Shift+S

    ใส่คำอธิบายภาพที่นี่

  2. ไปที่การตั้งค่าโครงการ> โมดูล> แหล่งที่มา> ระดับภาษาและเลือกระดับใดก็ได้ที่มีขนาด 6 หรือมากกว่า 6

    ใส่คำอธิบายภาพที่นี่


15

หากคุณใช้ maven ให้เพิ่มปลั๊กอินคอมไพเลอร์ maven ลงในไฟล์ pom.xml ของโปรเจ็กต์

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้


3

นอกจากนี้ยังมีระดับภาษาสำหรับทุกโมดูล โปรดตรวจสอบการตั้งค่าโมดูลของคุณในโครงสร้างโครงการ


ที่จริงฉันไม่เห็นที่อื่นที่สามารถดูระดับภาษาของโครงการได้ แต่โครงสร้างโครงการ / โครงการ
Nikitin Mikhail

โครงสร้างโครงการ | โมดูล | <your_module> | ระดับภาษา
Peter Gromov

0

ฉันพบปัญหานี้เป็นครั้งแรกในขณะที่ใช้โครงการ maven หลายโมดูล ตามที่คำตอบอื่น ๆ / IDE แนะนำเราจำเป็นต้องตั้งค่าระดับภาษา

แทนที่จะเปลี่ยนการตั้งค่า IDE เพื่อทำให้ IDE ของโปรเจ็กต์ไม่เชื่อเรื่องพระเจ้าฉันอัปเดต pom หลักด้วยคุณสมบัติด้านล่างซึ่งช่วยแก้ปัญหาได้

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

0

ในJIdea 2020/01/02 และเหนือ ,

  1. ไปที่โครงสร้างโครงการ [ Ctrl+ Alt+ Shift+S ]
  2. เลือกโมดูลส่วนย่อยของ
  3. เลือกแต่ละรายการโมดูล
  4. ภายใต้ส่วนแหล่งที่มาให้เลือกระดับภาษา
  5. เปลี่ยนระดับภาษาตามต้องการ

ใส่คำอธิบายภาพที่นี่

บันทึก:

หากคุณได้รับข้อผิดพลาดด้านล่างหลังจากการเปลี่ยนแปลงนี้

Error:java: Compilation failed: internal java compiler error

คุณต้องเปลี่ยนเวอร์ชัน bytecode เป้าหมายด้วย

  1. ไปที่การตั้งค่า [ Ctrl+ Alt+S ]
  2. เลือก Java Compiler
  3. เลือกโมดูลในตาราง
  4. เปลี่ยนเวอร์ชันไบต์โค้ดเพื่อแมปสิ่งที่คุณเลือกในขั้นตอนก่อนหน้าสำหรับระดับภาษา

ใส่คำอธิบายภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.