847 Stimmen

IntelliJ: Niemals Wildcard-Importe verwenden

Gibt es eine Möglichkeit, IntelliJ anzuweisen, niemals Wildcard-Importe zu verwenden? Unter "Einstellungen > Code-Stil > Importe" kann ich sehen, dass man die "Klassenanzahl" angeben kann, bevor IntelliJ Wildcard-Importe verwendet. Wenn ich jedoch nie Wildcard-Importe verwenden möchte, kann ich diese Funktion deaktivieren?

Ich habe versucht, -1 einzugeben oder das Feld leer zu lassen, aber das sagt IntelliJ nur, dass es immer Wildcard-Importe verwendet. Offensichtlich wäre eine nicht so nette Lösung, eine lächerlich hohe Zahl einzugeben, so dass man nie auf Wildcard-Importe stößt, aber ich hatte gehofft, es gäbe einen netteren Weg, um es einfach auszuschalten.

1154voto

duffymo Punkte 298898

Es liegt auf der Hand, warum Sie diese Funktion deaktivieren sollten: Um IntelliJ zu zwingen, jeden einzelnen Import einzubeziehen. Das macht es für andere einfacher, genau herauszufinden, woher die von Ihnen verwendeten Klassen stammen.

Klicken Sie auf das Symbol "Schraubenschlüssel" in der Symbolleiste, öffnen Sie "Importe" unter "Codestil" und aktivieren Sie die Option "Import einer einzelnen Klasse verwenden". Sie können auch die Einträge unter "Packages to use import with" komplett entfernen * ", oder geben Sie einen Schwellenwert an, der nur den " * ", wenn die einzelnen Klassen eines Pakets diesen Schwellenwert überschreiten.

Aktualisierung: in IDEA 13 "Use single class import" verhindert keine Wildcard-Importe. Die Lösung ist, zu gehen zu Preferences ( + , unter macOS / Ctrl + Alt + S unter Windows und Linux) > Editor > Code Style > Java > Imports tab einstellen. Class count to use import with '*' y Names count to use static import with '*' auf einen höheren Wert. Jeder Wert über 99 scheint gut zu funktionieren.

1 Stimmen

Bevor ich die hohe Zahl für den Schwellenwert einstellte, hatte ich die Einstellungen bereits so eingerichtet, wie Sie sagten, aber die Platzhalter-Importe wurden trotzdem eingefügt (d.h. ich hatte "use single class import" aktiviert und alle Pakete in der Liste "packages to use import with *" entfernt...

0 Stimmen

Für mich arbeiten. Mal sehen, was ich noch eingestellt haben könnte. Version 9.0.3 für mich.

1 Stimmen

Wenn Sie also 11 Klassen aus demselben Paket importieren, wird der Platzhalter-Import nicht aktiviert? Zu Testzwecken habe ich den Schwellenwert auf 2 gesetzt. Wenn ich etwas aus org.hibernate importiere, wird der Import korrekt (voll qualifiziert) eingetragen. Sobald ich etwas anderes aus org.hibernate importiere, bleibt der Wildcard-Import erhalten, was mir entweder sagt, dass sich meine Version von intellij nicht so verhält wie Ihre, oder dass die einzige Lösung darin besteht, einen hohen Schwellenwert zu setzen, damit ich dieses Problem nicht habe.

396voto

Do Nhu Vy Punkte 38281
  1. Datei \Settings... ( Ctrl + Alt + S )
  2. Projekteinstellungen > Editor > Code-Stil > Java > Registerkarte Importe
  3. Satz Anzahl der zu verwendenden Klassen bei Import mit '*' bis 999
  4. Satz Zählung der Namen zur Verwendung von statischem Import mit '*' bis 999

Danach sollte Ihre Konfiguration wie folgt aussehen: enter image description here

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

109voto

Matt Klein Punkte 7076

Wie ein Dummkopf konnte ich nicht herausfinden, warum keine dieser Antworten für meine Kotlin-Dateien für java.util.* Wenn das also bei Ihnen der Fall ist, dann:

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

38 Stimmen

Du bist nicht der einzige Dummkopf da draußen /:( :)

1 Stimmen

Ich hatte das gleiche Problem mit Groovy.

58voto

Kanke Punkte 2137

enter image description here

IntelliJ IDEA 2018.1.4 (Ultimate Edition) erstellt am 16. Mai 2018

29voto

Amio.io Punkte 19007

Die obige Lösung hat bei mir nicht funktioniert. Ich musste die "Klassenanzahl für den Import mit '*'" auf einen hohen Wert setzen, z. B. 999.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X