编译器可以访问格式字符串AND所需的类型和参数。所以我假设有一些方法来指示varargs的缺失参数......即使只是一个案例的子集。是否存在eclipse或其他ide表示传递的varargs可能在运行时导致问题?
答案 0 :(得分:10)
看起来FindBugs可以解决您的问题。有一些与格式字符串相关的警告类别。
答案 1 :(得分:1)
Java编译器没有StringFormat参数的任何内置语义知识,因此在编译时无法检查这些参数。尽管如此,StringFormat只是另一个类而String.format只是另一个方法,而给定的格式字符串只是另一个字符串。
但是,在过去的几天里,我感受到了你的痛苦,遇到了同样的问题。他们应该做的是让它对参数的数量“不那么小心”,只留下尾随的%s标记未被替换。