Kompilator ma dostęp do ciągu formatu ORAZ wymaganych typów i parametrów. Zakładam więc, że byłby jakiś sposób wskazania brakujących parametrów dla varargs ... nawet jeśli tylko dla podzbioru przypadków. Czy istnieje jakiś czas na zaćmienie lub inny obiekt, który mógłby wskazać, że dane zmienione mogą spowodować problem w czasie wykonywania?Jak uzyskać string.format narzekać na czas kompilacji
Odpowiedz
Wygląda na to, że FindBugs może rozwiązać Twój problem. Istnieją pewne kategorie ostrzeżeń związane z ciągami formatów.
Kompilator Java nie ma wbudowanej semantycznej znajomości parametrów StringFormat, więc nie może ich sprawdzić w czasie kompilacji. Dla wszystkich wie, StringFormat jest po prostu kolejną klasą, a String.format jest po prostu inną metodą, a podany ciąg formatu jest po prostu kolejnym ciągiem, jak każdy inny.
Ale tak, odczuwam twój ból, ponieważ natknąłem się na te same problemy w ciągu ostatnich kilku dni. To, co powinni byli zrobić, to "mniej ostrożnie" pod względem liczby parametrów i po prostu pozostawić niezamienne zastępcze znaczniki% s.
Kompilator nie może powiedzieć ... prawda, ale może istnieją narzędzia do analizy statycznej, które to robią? – mafalda
- 1. Uzyskaj czas kompilacji JAR
- 2. Jak obliczyć czas kompilacji gcc?
- 3. Skontrolować czas kompilacji powiązań?
- 4. Jak uzyskać czas UTC
- 5. gcc poznaj czas kompilacji
- 6. Kompilator Java: Przestań narzekać na martwy kod
- 7. Jak uzyskać czas lokalny na iOS
- 8. Czas wydruku Java ostatniej kompilacji
- 9. Czas kompilacji Xamarin bardzo powolny
- 10. jak zminimalizować czas kompilacji języka programowania?
- 11. Przyspiesz czas kompilacji z SSD
- 12. Kolejka priorytetu usuwa czas kompilacji
- 13. String.Format dla waluty na TextBoxFor
- 14. Czas kompilacji typeid bez RTTI z GCC
- 15. czas kompilacji MVC widok kontroli z msbuild
- 16. Inicjalizacja zestawu danych Czas kompilacji - ciąg Constexpr
- 17. jak przekonwertować czas serwera na czas lokalny
- 18. Java Libraries Runtime vs Czas kompilacji
- 19. Czas kompilacji wyprowadzania dla plików SWIFT
- 20. Dlaczego kompilator narzekać tej makro deklaracji
- 21. Jak uzyskać czas rozpoczęcia i zakończenia na pełnym kalendarze?
- 22. jak uzyskać bieżący czas odtwarzania w wideo.js
- 23. Jak uzyskać czas przeszły od czasownika?
- 24. Jak uzyskać monotoniczny czas trwania w python?
- 25. Jak uzyskać czas GMT w systemie Unix?
- 26. Stałe w .NET z String.Format
- 27. Jak mogę uzyskać aktualny czas w C#?
- 28. Jak uzyskać czas epoki w C#?
- 29. Jak uzyskać czas trwania filmu wideo?
- 30. Jak uzyskać ostatni artefakt kompilacji z kompilacji TFS?
Nicea pomysł na wzmocnienie Eclipse, btw. Może sprawdzić co najmniej ciągi w formacie statycznym i warianty o stałym rozmiarze. –
Sprawdź moją odpowiedź tutaj - http://stackoverflow.com/questions/24769455/java-string-format-compile-time-error-checking-and-safer-alternative - wciąż jest niewielka praca w toku. –