Как заставить string.format пожаловаться во время компиляции - PullRequest
8 голосов
/ 18 января 2011

Компилятор имеет доступ к строке формата И требуемым типам и параметрам. Поэтому я предполагаю, что был бы какой-то способ указать недостающие параметры для переменных ... даже если только для подмножества случаев. Есть ли какой-либо способ затмения или другой идеи указать, что переданные varargs могут вызвать проблемы во время выполнения?

Ответы [ 2 ]

10 голосов
/ 18 января 2011

Похоже, что FindBugs может решить вашу проблему. Есть несколько категорий предупреждений, связанных со строками формата.

1 голос
/ 18 января 2011

Компилятор Java не имеет встроенных семантических знаний о параметрах StringFormat, поэтому он не может проверять их во время компиляции.Всем известно, что StringFormat - это просто еще один класс, а String.format - это просто еще один метод, и данная строка формата - это просто другая строка, как любая другая.

Но да, я чувствую вашу боль, когда сталкиваюсь с этимите же проблемы в последние пару дней.То, что они должны были сделать, - это сделать его «менее осторожным» в отношении количества параметров и просто оставить конечные маркеры% s без замены.

...