Deaktivieren Sie die Warnung "Nicht verwendet" für öffentliche Methoden einer Klasse


77

Das neue Intellij-Upgrade (10.5) zeigt jetzt eine Warnung an, dass einige der für eine Klasse definierten Methoden nicht verwendet werden. Diese Methoden sind öffentlich und ich plane, nicht alle zu verwenden, da ich sie erstellt habe, um die erwartete API zu unterstützen. Ich möchte diese Warnung deaktivieren (nicht für öffentliche Methoden in einer Klasse verwendet). Gibt es eine Möglichkeit, dies zu tun?

Antworten:


63

Sie können es für eine einzelne Methode wie diese deaktivieren

@SuppressWarnings("unused")
public void myMethod(){...}

3
Perfekt! Ich wollte nicht, dass die Warnung für meinen neuen Code deaktiviert wird, sondern nur, dass er über Legacy-Code geschlossen wird, der sich durch ein Stück "Spring-etti" "widerspiegelt".
Roboprog

9
Es ist ein bisschen albern, dass Sie Intellij sagen müssen, dass eine PUBLIC-Methode von Code verwendet werden kann, den Intellij nicht sieht ...
Florian F

Es ist wirklich traurig. Ich finde Intellij sehr nervig. Ich denke, ihre Absicht war gut, aber ich kämpfe beim Codieren dagegen an. Die rechte Bildlaufleiste enthält viele Warnungen vor falschen Flaggen anstelle von Warnungen vor echten Problemen.
TatiOverflow

@TatiOverflow: Wenn Sie mit der rechten Maustaste auf die rechte Leiste klicken und "Hervorhebungsstufe anpassen" auswählen, können Sie Inspektionen vollständig entfernen.
Erk

Es scheint umbenannt zu werden @Suppress("unused"). Außerdem finden Sie es mit der rechten Maustaste -> Inspektion für diese Zeile deaktivieren.
Polv

52

IDEE 2016.3

In der kommenden Version IDEA 2016.3 (Vorschau-Version bereits verfügbar) ist es nun möglich, den Inspektionsumfang anzupassen:

Geben Sie hier die Bildbeschreibung ein

<IDEE 14.0

Wenn Sie nicht verwendete öffentliche Methoden hervorheben möchten, aktivieren Sie die globale Inspektion "Einstellungen | Inspektionen | Deklarationsredundanz | Nicht verwendete Deklaration".

Wenn Sie nicht verwendete private Methoden hervorheben möchten, aktivieren Sie die lokale Inspektion "Einstellungen | Inspektionen | Deklarationsredundanz | Nicht verwendetes Symbol".

Wenn Sie also nicht verwendete private Mitglieder markieren möchten, aber nicht verwendete öffentliche Mitglieder nicht markieren möchten, deaktivieren Sie "Nicht verwendete Deklaration" und "Nicht verwendetes Symbol".

Quelle

Ich habe es gerade mit IDEA 13.1.4 getestet und es hat genau wie beschrieben funktioniert.

IDEE 14.x.

In IntelliJ IDEA 14.0.x befinden sich die Einstellungen unter:

Settings | Editor | Inspections | Declaration redundancy | Unused symbol/declaration

In IntelliJ IDEA 14.1 scheint die Option weg zu sein.


Es scheint, als ob die Inspektion "Nicht verwendetes Symbol" in IDEA 14 durchgeführt wurde.
Vertrauen auf den

Überhaupt nicht, es ist unter Settings | Editor | Inspections | Declaration redundancy | Unused symbol. Wenn Sie es nicht finden können, geben Sie Unused symboldas Suchfeld im Einstellungsdialog ein.
Darek Kay

Das habe ich schon versucht. Ich bin bei IDEA EAP 141.814.3. Hier ist der Screenshot - imgur.com/cfOa48M
Trustin

2
Du hast recht, in 14.0.3 war es noch da. Jetzt kann ich es oder eine Alternative nicht finden.
Darek Kay

1
Es wurde ein Problembericht eingereicht und wir sollten dafür stimmen, damit JetBrains dieses Problem
Trustin

39

Deaktivieren Settings| Inspections| Declaration redundancy| Überprüfung des nicht verwendeten Deklarationscodes . Optional können Sie einen benutzerdefinierten Bereich für Ihre API-Klassen erstellen und diese Überprüfung nur pro API-Bereich deaktivieren, damit sie in den übrigen Teilen Ihres Projekts weiterhin funktioniert.


31
Es ist schade, dass es keine Option gibt, diese Überprüfung nur für öffentliche Methoden zu deaktivieren und für private Methoden aktiviert zu lassen.
CarlG

2
Es gibt meine andere Antwort.
Darek Kay

1
Es ist wieder weg. Siehe Kommentare unter @ DarekKay Antwort.
Mark Jeronimus

7

2018-2019

Hier ist das Update 2019 für: IntelliJ IDEA 2018.3.2 (Community Edition) Build # IC-183.4886.37, erstellt am 17. Dezember 2018

Einstellungen | Editor | Inspektionen | Deklarationsredundanz | Nicht verwendete Erklärung

Geben Sie hier die Bildbeschreibung ein


Ist es notwendig, die Pro-Version zu haben, um all diese Optionen zu erhalten? Da ich sie nicht habe, habe ich nur "Unbenutzte Deklaration". Vielleicht liegt es daran, dass ich an einem groovigen Projekt arbeite ... aber immer noch.
Zangdar

Dies ist, weil ich an einem groovigen Projekt gearbeitet habe, sie sind dort in Java
Zangdar

IMO ist es besser, die Klasse als "Einstiegspunkt" zu markieren.
Tanya Jivvca

6

Ich denke, der beste Weg, um das Hervorheben dieser nicht verwendeten öffentlichen Methoden zu vermeiden, besteht darin, ein paar Tests für diese Methoden in Ihre API zu schreiben.


5

In der neuesten Version befinden sich diese Optionen unter nicht Settings>Inspections>Java>Declaration redundancy>Unused declaration>Methodsaktivierten Optionen.


2

Dies ist ein alter Thread, aber ich bin schneller hier gelandet, als ich eine Lösung finden konnte, also werde ich weitermachen und meine Erkenntnisse teilen. Erstens bin ich mir nicht sicher, ob wir mit derselben Sprache arbeiten (JS hier), aber mit den GUI-basierten Tools herumgespielt haben. Der folgende Code gab mir die berüchtigte Warnung "nicht verwendet":

/**
 * @class sample class
 */
var MyClass = function () {
    return this;
};

/**
 * Some public method
 * @api public
 */
MyClass.prototype.myMethod = function () {
    return null;
};

Es gibt die "Nicht verwendete Definition myMethod". Der Inspektor schlug schließlich vor, dieses spezielle Problem durch Hinzufügen zu ignorieren

//noinspection JSUnusedGlobalSymbols

direkt über dieser speziellen Methode, sodass der folgende Code nicht mehr zu dieser Warnung führt:

//noinspection JSUnusedGlobalSymbols
/**
 * Some public method
 * @api public
 */
MyClass.prototype.myMethod = function () {
   return null;
};

Andere Warnungen (Tippfehler usw.) scheinen immer noch angezeigt zu werden, einschließlich nicht verwendeter lokaler Variablen und Parameter, sodass dieses spezielle Problem isoliert zu sein scheint. Der Nachteil ist, dass es dazu neigt, Ihren Code zu verschmutzen, wenn Sie viel davon haben ...


1
Genau. Dies ist eine Code-Verschmutzung, wenn ein Entwickler bei Intellij das Problem einfach beheben könnte. Wie auch immer, eine neue Idee dazu?
TatiOverflow

Hinweis: Sie können phpstorm "// noinspection JSUnusedGlobalSymbols" automatisch hinzufügen lassen, indem Sie das Dialogfeld "Absichtsaktionen anzeigen"> "Für Anweisung unterdrücken" verwenden. Ich kann mit einer Tastenkombination Alt + Enter darauf zugreifen, abhängig von Ihrer Tastenbelegung.
Kosinix

1

Ich habe gerade auf "Für Anweisung unterdrücken" geklickt und Webstorm hat Folgendes vorangestellt:

//noinspection JSUnusedGlobalSymbols
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.