8

编译器可以访问格式字符串以及所需的类型和参数。所以我认为会有一些方法来指示可变参数的缺失参数......即使只是对于一部分案例。eclipse 或其他 ide 是否有某种方式表明传递的可变参数可能会在运行时导致问题?

4

2 回答 2

10

看起来 FindBugs 可以解决您的问题。有一些与格式字符串相关的警告类别。

于 2011-01-17T22:16:36.937 回答
1

Java 编译器没有任何 StringFormat 参数的内置语义知识,因此它无法在编译时检查这些参数。据它所知,StringFormat 只是另一个类,而 String.format 只是另一种方法,给定的格式字符串只是另一个与其他字符串一样的字符串。

但是,是的,我感觉到你的痛苦,在过去的几天里遇到了同样的问题。他们应该做的是让参数的数量“不那么小心”,并且不替换尾随的 %s 标记。

于 2011-01-17T21:46:07.250 回答