IntelliJ: ห้ามใช้สัญลักษณ์แทนการนำเข้า


624

มีวิธีบอก IntelliJ ไม่ให้ใช้การนำเข้าไวด์การ์ดหรือไม่? ใต้ 'การตั้งค่า> ลักษณะรหัส> นำเข้า' ฉันจะเห็นว่าคุณสามารถระบุ 'การนับชั้น' ก่อน IntelliJ โดยใช้การนำเข้าสัญลักษณ์แทน อย่างไรก็ตามหากฉันไม่ต้องการใช้การนำเข้าไวด์การ์ดฉันสามารถปิดฟังก์ชั่นนี้ได้หรือไม่?

ฉันได้ลองใส่ -1 หรือปล่อยให้ฟิลด์นั้นว่างเปล่า แต่นั่นก็แค่บอก IntelliJ ให้ใช้สัญลักษณ์แทนการนำเข้าเสมอ เห็นได้ชัดว่าวิธีแก้ปัญหาที่ไม่ดีจะวางจำนวนที่น่าขันเพื่อให้คุณไม่เคยพบกับการนำเข้าไวด์การ์ด แต่ฉันหวังว่าจะมีวิธีที่ดีกว่าในการปิด

คำตอบ:


844

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

คลิกที่ไอคอนการตั้งค่า "ประแจ" บนแถบเครื่องมือเปิด "นำเข้า" ภายใต้ "รูปแบบรหัส" และตรวจสอบการเลือก "ใช้การนำเข้าคลาสเดียว" นอกจากนี้คุณยังสามารถลบรายการภายใต้ "แพคเกจที่จะใช้นำเข้าด้วย*" หรือระบุค่าเกณฑ์ที่ใช้เพียง " *" เมื่อแต่ละคลาสจากแพคเกจเกินกว่าเกณฑ์ที่

อัปเดต:ใน IDEA 13 "ใช้การนำเข้าคลาสเดียว" ไม่ได้ป้องกันการนำเข้าไวด์การ์ด วิธีแก้ไขคือไปที่Preferences( + ,บน macOS / Ctrl+ Alt+ Sบน Windows และ Linux) > Editor > Code Style > Java > Imports tabตั้งค่าClass count to use import with '*'และNames count to use static import with '*'ค่าที่สูงขึ้น ค่าใด ๆ ที่มากกว่า 99 ดูเหมือนว่าจะทำงานได้ดี


43
ในกรณีที่ช่วยให้คนอื่นสับสน: ในความกระตือรือร้นของฉันที่ไม่เคยยุบการนำเข้าฉันใส่สตริงที่มีความยาวอย่างไม่มีเหตุผลใน 9 รายการในฟิลด์ 'การนับคลาสที่ต้องใช้ ... ' และสิ่งนี้ทำให้ IntelliJ 12 ไม่สนใจค่าอย่างเงียบ ๆ '9999' ทำงานได้ดี
PotataChipz

16
ไม่มีวิธีใดที่จะบอก Intellij 15 ว่าไม่เคยใช้การนำเข้าไวด์การ์ดใช่ไหม ฉันหมายถึงโดยไม่ต้องระบุจำนวนชั้น?!
Stephen Hartley

2
เหตุใดการเพิ่มคลาสจึงนับว่าเป็นภาระดังนั้น ทำไมไม่ขอให้ JetBrains ทำการปรับปรุงหากมันเป็นเรื่องน่ารังเกียจ?
duffymo

30
ดูเหมือนว่าเก้าเก้าควรจะเพียงพอ หากคุณต้องการการนำเข้ามากกว่าพันรายการฉันจะบอกว่าคลาสของคุณควรได้รับการปรับปรุงใหม่
duffymo

24
ไม่อยากเชื่อเลยว่าโปรแกรมที่ตั้งโปรแกรมไว้สำหรับโปรแกรมเมอร์ในลักษณะที่โปรแกรมถูกตั้งโปรแกรมไว้ กล่องโต้ตอบที่สับสนนี้ยังคงไม่ได้รับการแก้ไขในปี 2559.3 มีข้อบกพร่องหรือไม่หรือเราจะลงคะแนนที่ไหนสักแห่ง?
Glenn Bech

322
  1. ไฟล์ \ การตั้งค่า ... ( Ctrl+ Alt+ S)
  2. การตั้งค่าโปรเจ็กต์> ตัวแก้ไข> สไตล์โค้ด> Java> แท็บนำเข้า
  3. ตั้งค่าจำนวน Class เพื่อใช้การนำเข้าด้วย '*'ถึง 999
  4. ตั้งชื่อให้นับเพื่อใช้การนำเข้าแบบคงที่ด้วย '*'ถึง 999

หลังจากนี้การกำหนดค่าของคุณควรมีลักษณะดังนี้: ป้อนคำอธิบายรูปภาพที่นี่

(บน IntelliJ IDEA 13.x, 14.x, 15.x, 2016.x, 2017.x)


39

เหมือน dum-dum ฉันไม่สามารถเข้าใจได้ว่าทำไมไม่มีคำตอบเหล่านี้ทำงานกับไฟล์ Kotlin ของฉันjava.util.*ดังนั้นถ้าเกิดเหตุการณ์เช่นนี้กับคุณ:

Preferences
> Editor
> Code Style
> **Kotlin**
> Imports
> Packages to Use Import with '*'
-> Remove 'java.util.*'

12
คุณไม่ได้เป็นคนเดียวที่เป็นเจ้าของ .. / :( :)
มาร์โก


28

วิธีแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉัน ฉันต้องตั้งค่า 'class count เพื่อใช้การนำเข้าด้วย' * '' เป็นค่าสูงเช่น 999


6

ถ้าไม่ใช่ด้านบนทำงานให้คุณแล้วมันมีค่าเพื่อตรวจสอบว่าคุณมีแพคเกจใด ๆ ภายใต้การตั้งค่า> ตัวแก้ไข> ลักษณะรหัส> Java> นำเข้า> แพคเกจที่จะใช้นำเข้าด้วย "*"


5

สิ่งนี้ใช้กับ "IntelliJ IDEA-2019.2.4" บน Mac

  1. ไปที่ "IntelliJ IDEA-> Preferences-> Editor-> Code Style-> Kotlin"
  2. ส่วน "แพคเกจที่จะใช้นำเข้าด้วย ' ' บนหน้าจอจะแสดงรายการ" import java.util "

ก่อน

  1. คลิกที่ใดก็ได้ในกล่องนั้นและลบรายการนั้น
  2. กด Apply และตกลง

หลังจาก


2

ทางลัดการทำเช่นนี้บน Mac: กดคำสั่ง + Shift + A (Action) แล้วพิมพ์ "class count เพื่อใช้การนำเข้าด้วย *" กด Enter ป้อนตัวเลขที่สูงกว่าเช่น 999


0

หากคุณไม่ต้องการเปลี่ยนการกำหนดค่าตามความชอบคุณสามารถเพิ่มประสิทธิภาพการนำเข้าได้โดยกด Ctrl + Option + o บน Mac หรือ Ctrl + Alt + o บน Windows / Linux และสิ่งนี้จะแทนที่การนำเข้าทั้งหมดด้วยการนำเข้าเดี่ยวในไฟล์ปัจจุบัน


3
IntelliJ พิจารณาว่าการยุบการนำเข้าด้วย * เป็นการเพิ่มประสิทธิภาพโดยค่าเริ่มต้น
Matthew อ่าน

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