2011-01-17 11 views
8

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

+0

Nicea pomysł na wzmocnienie Eclipse, btw. Może sprawdzić co najmniej ciągi w formacie statycznym i warianty o stałym rozmiarze. –

+0

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. –

Odpowiedz

1

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.

+0

Kompilator nie może powiedzieć ... prawda, ale może istnieją narzędzia do analizy statycznej, które to robią? – mafalda