【问题标题】:How to get string.format to complain at compile time如何让 string.format 在编译时抱怨
【发布时间】:2011-01-17 21:38:37
【问题描述】:

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

【问题讨论】:

  • Eclipse 增强的好主意,顺便说一句。它至少可以检查静态格式字符串和固定大小的可变参数。
  • 在这里查看我的答案 - stackoverflow.com/questions/24769455/… - 它仍在进行中

标签: java eclipse string.format


【解决方案1】:

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 也许编译器不能说...真的,但也许有一些静态分析工具可以做到这一点?
猜你喜欢
  • 1970-01-01
  • 2011-01-08
  • 2017-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
  • 1970-01-01
  • 2012-09-12
相关资源
最近更新 更多