Chciałbym mechanizm do ręcznego zgłaszania ostrzeżenia o kompilacji. Używam go do oznaczania niedokończonego kodu, więc nie mogę o tym zapomnieć później. @Deprecated jest blisko, ale ostrzega na stronie dzwoniącego, a nie na stronie tworzenia. Używam zaćmienia. Coś w stylu #Warning w języku C#.ostrzeżenie force w java
Odpowiedz
Dlaczego po prostu nie dodać flagi w kodzie źródłowym, np. //TODO:
czy coś? A następnie po prostu wyszukać wszystkie wystąpienia TODO
w pliku? Możesz nawet mieć specjalną flagę, np. FINISHME
lub coś podobnego.
Jeśli masz setki TODO w projekcie od zespołu, możesz filtrować według ciągu, np. Twoje inicjały w prawym górnym rogu menu zadań.
Utwórz adnotację, która wyświetla ostrzeżenie.
co, podobnie jak rozszerzenie eclipse? brzmi jak ogromny ból. –
Nie, wcale tak nie jest. –
masz na myśli wyjścia ostrzeżenia w czasie wykonywania? –
można spróbować rzucić wyjątek, jeśli niedokończone metoda jest wywoływana (np)
throw new UnsupportedOperationException()
(Albo można tworzyć własne Exception). Oczywiście będzie to pomocne tylko w czasie wykonywania (chyba że wykonasz wyszukiwanie lub coś w tym kodzie - ale Todo będzie lepszym rozwiązaniem)
A jeśli używasz Eclipse, możesz oznaczyć swój niedokończony kod przez // TODO i pojawi się na twojej liście zadań (i prawej rynnie, jeśli ją skonfigurowałeś). Oczywiście rzeczy mogą stać się bardzo głośne, jeśli masz dużo tagów Todo.
nic dobrego, zmienia to sygnaturę metody, dodając klauzulę throws aż do hierarchii dziedziczenia. –
@Dustin Getz: Wystarczy użyć podklasy RuntimeException lub Error. Nie ma to wpływu na hierarchię ani na osoby dzwoniące. –
@Dustin Ponadto UnsupportedOperationException jest RuntimeException –
Robię to cały czas, wkładając "*** LEWO TUTAJ ***" lub takie. Ponieważ nie jest to poprawna Java lub C++ lub prawie jakakolwiek inna składnia języka, kompilator podaje komunikat o błędzie.
Oczywiście, że daje błąd, a nie ostrzeżenie. Jeśli chcesz w inny sposób pomyślnie skompilować, przypuszczam, że łatwą rzeczą byłoby napisanie oświadczenia, o którym wiesz, że wygeneruje ostrzeżenie kompilatora z komentarzem "zakończ to" lub cokolwiek innego.
Nie jestem pewien, czy jest coś takiego w java
ale tutaj jest coś, co może pomóc:
skompilować kod poniżej tak:
javac -Xprint verbose.java
public class verbose{
public @interface SomeMessage {
String somevalue();
}
@SomeMessage(
somevalue = "WHOOOOHOOOO000000000000000"
)
public static void main(){
System.out.println("Hello");
}
}
Kiedy chcę ostrzec użytkowników o wywołaniu metody, ja (pomyłkę) używam adnotacji wbudowanej @Deprecated, która generuje ostrzeżenie po stronie dzwoniącego. Właściwie ma to nieco inne znaczenie, ale mnie to nie obchodzi.
/** [Additional information...]
* It is marked as deprecated to warn callers. */
@Deprecated public void methodForWhichIWantToCreateAWarning();
Znacznie lepiej niż przy użyciu przestarzałej adnotacji w mojej skromnej opinii adnotacja suppresswarnings.
@SuppressWarnings("XXX")
może być odnotowany prawie wszędzie i tak długo jak XXX nie jest ważne ostrzeżenie dostaniesz ostrzeżenie od zaćmienia temat.
nie działa tutaj. Błąd: "Błąd składni na tokenach, błędne konstrukcje" – RSFalcon7
- 1. force scrollbar w Safari
- 2. Wywołanie metody Force base
- 3. java ostrzeżenie o typie wieloznacznym
- 4. ostrzeżenie Java z realizacją Porównywalne
- 5. Przeładuj konfigurację Force w Symfony2
- 6. Co robi "Force" w Unecrustify?
- 7. Kontroler Yii Force HTTPS
- 8. Aktualizacja wiązania Force Silverlight
- 9. JavaFX force recompute binding
- 10. force download image base64
- 11. Force Pobierz plik CSV
- 12. Automatyczne rozpakowywanie Java - czy jest ostrzeżenie kompilatora?
- 13. Ostrzeżenie dotyczące dziedziczenia generycznego języka Java
- 14. grunt-contrib-copy throwing Ostrzeżenie: Argumenty do path.join muszą być ciągami Użyj --force, aby kontynuować
- 15. Force svn: eol-style = natywne na serwerze?
- 16. force slf4j do drukowania logów w sekwencji
- 17. Ograniczanie ataków typu brute force w Django
- 18. Pokaż ostrzeżenie przed zamknięciem okna w Java Script
- 19. Ostrzeżenie MaxPermSize w środowisku Eclipse WildFly 8 i Java 8
- 20. D3 v4 Force Simulation "zgrupowane"
- 21. FlowDocument Force a PageBreak (BreakPageBefore)
- 22. Android wake lock force close
- 23. YouTube iframe embed: force Flash?
- 24. Podstawy D3 Force reżyserii Układ
- 25. Antisamy parser force tag zamykający
- 26. Notacja frakcji LaTeX force slash
- 27. Python Wheel Force ABI "none"
- 28. ostrzeżenie
- 29. Aktualizacja D3 Force Directed Graph ajax
- 30. Ostrzeżenie w Google Map
Czy używasz Eclipse? Możesz użyć // TODO w komentarzach, które pojawią się w widoku Zadania. – Etienne