繁体   English   中英

如何查找特定类型的toString()方法的隐式用法

[英]How to find implicit usages of toString() method for specific type

最近,我将代码中处理密码的所有位置从String更改为新的Password类。 Password.toString()方法现在仅显示[********] 如果要获取密码,则必须调用Password.getPassword() 这样,我可以确保不会将密码意外写入日志文件。

在更改期间,我错过了更改某些类似于以下内容的行:

String.format( "user:%s", password );

在我进行更改之前, password的类型为String ,因此其格式已根据需要设置。 但是在我更改password后, password显示为[*******] 那正是我的意图。 但是现在我想自动找到所有这些地方。

我试过的FindBugsFB-的contrib插件( ITU_INAPPROPRIATE_TOSTRING_USE ),但没有发现的隐式使用Password.toString()内的String.format()。

是否有人知道另一个findbugs contrib项目或任何其他可以找到这些代码位置的静态代码分析器?

ITU仅发现使用toString()来推断内容的值,例如,是将其解析为某个值,还是使用它来构建其他字符串。 检测器在那里告诉您,实际上,您不应该依赖toString()的内容,因为在许多情况下,应将其视为“调试”输出。 (如您在此处看到的)。

会有很多误报的方法只是为了检查对toString()的使用,该方法始终有效。

不,不知道任何检测器,但是写一个检测器很简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM