2010-12-11 13 views
11

Netbeans dostarcza wiele niestandardowych "wskazówek", które są jak ostrzeżenia, tyle tylko, że większość z nich nie może być zniesiona (tylko wyłączone IDE-globalnie).Java: pełna lista parametrów @SuppressWarnings (...) (w Netbeans)?

Ale teraz patrząc na kod, który wykorzystuje

@SuppressWarnings("element-type-mismatch") 

stłumić podpowiedź/ostrzeżenie, które nazywa się „podejrzane wywołanie metody” (takich jak remove(...) dla kolekcji z „źle” typu).

Cóż, nigdy nie wpadłbym na pomysł, aby pominąć podpowiedź o nazwie "podejrzane wywołanie metody" z parametrem SuppressWarnings nazywanym "niedopasowaniem typu elementu", ale podobno działa.

Czy istnieje "magiczna lista" takich parametrów?

Jak na przykład pomijam podpowiedź/ostrzeżenie "powrót pola odbioru"?

UWAGA: w przypadku this similar question "niezgodność typu elementu" nie znajduje się na liście.

Odpowiedz

12

Po krótkim spojrzeniu na NB-źródłowego, znalazłem je w niektórych wyraĹĽenie -lekcje java.hint:

@Hint(category="bitwise_operations", suppressWarnings="IncompatibleBitwiseMaskOperation") 
@Hint(category="initialization", suppressWarnings="LeakingThisInConstructor") 
@Hint(category="logging", suppressWarnings={"NonConstantLogger"}) //NOI18N 
@Hint(category="logging", suppressWarnings={"ClassWithMultipleLoggers"}) //NOI18N 
@Hint(category="logging", suppressWarnings={"ClassWithoutLogger"}, enabled=false) //NOI18N 
@Hint(category="code_maturity", suppressWarnings="UseOfObsoleteCollectionType") 
@Hint(category="initialization", suppressWarnings="OverridableMethodCallInConstructor") 
@Hint(category="bitwise_operations", suppressWarnings="PointlessBitwiseExpression") 
@Hint(category="code_maturity", suppressWarnings="CallToThreadDumpStack") 
@Hint(category="bitwise_operations", suppressWarnings="ShiftOutOfRange") 
@Hint(category="initialization", suppressWarnings="StaticNonFinalUsedInInitialization") 
@Hint(category="code_maturity", enabled = false, suppressWarnings="UseOfSystemOutOrSystemErr") 
@Hint(category="code_maturity", suppressWarnings="CallToPrintStackTrace") 

Najwyraźniej nie wszystkie IDE-wskazówki, które są wyświetlane jako ostrzeżenia są suppressable. .. Nie wiem dlaczego, ponieważ klasa AbstractHint, której wiele z nich rozszerza się łatwo, zapewnia tę zdolność ... Są to jednak tylko nazwy tłumiące, więc aby znaleźć odwzorowanie na nazwy ostrzeżeń, które reprezentują , potrzebne jest głębsze wykopanie w źródle.

+1

@SuppressWarnings ("PublicField") działa w NetBeans 8.2. –

1

documentation mówi:

sprzedawców kompilatora powinny udokumentować nazwiska ostrzegawcze one wsparcie w związku z tego typu adnotacji. Są zachęcani do współpracy w celu zapewnienia, że ​​te same nazwy działają w wielu kompilatorach.

Ponieważ NetBeans używa javac myślę, here is a list.

See also this question.

Jeśli używasz innego kompilatora lub wtyczki kompilatora, wyszukaj jego dokumentację.

+1

Cóż, żaden z tych środków zawiera „element typu niedopasowania ";) Tak, szukałem dokumentacji Netbeans powiązanej z tym, ale bez powodzenia. –

+1

cóż, wygląda na to, że jest niestandardowy, a nie udokumentowany (pewnie też googlowałeś). Co jest złe. – Bozho

1

Cóż, lista jest trudna do znalezienia. Znalazłem źródła Netbeans.

Zatem "lista" to here. (również spojrzeć na pakietach podrzędnych, np jdk i perf)

Wszystkie klasy mogą być stłumione przy użyciu jego nazwy camel cases jak:

// org.netbeans.modules.java.hints.jdk.UnnecessaryBoxing.java 
@SuppressWarnings("UnnecessaryBoxing") 
Powiązane problemy