我可以列出为我的 class 调用隐式 toString() 时的所有情况吗?
Can I list all cases when implicit toString() is called for my class?
对于我项目中的某些 类,我覆盖了 toString() 方法。主要目的是提高日志的可读性。这意味着此类字符串未本地化,不应出现在 UI 中。另外,我担心某个地方会调用隐式 toString() 而不是使用实际对象,例如当它被序列化时(使用一些第 3 方库)。
有没有办法列出调用 toString() 时的所有情况?更好的是,只在我的包中为 类 设置它,或者以其他方式过滤琐碎的情况,例如 log("index=" + index)
?或禁止隐式 toString() 用于我项目中的特定 类?
我的项目实际上使用 Java 7 并针对 Android 编译。我目前使用 Eclipse (ADT),并且启用了 Lint 分析。但我愿意切换工具和环境。
您可以尝试 JArchitect 及其 CQLinq 功能,例如您可以这样执行查询:
from m in Methods where m.IsUsing ("java.lang.String.toString()")
select m
您还可以定义高级查询,您可以在其中搜索特定包或 类 中的结果。
已升级到 Android Studio 1.3 版。它完全按照我的意愿显示了关于隐式 toString()
的警告!
对于我项目中的某些 类,我覆盖了 toString() 方法。主要目的是提高日志的可读性。这意味着此类字符串未本地化,不应出现在 UI 中。另外,我担心某个地方会调用隐式 toString() 而不是使用实际对象,例如当它被序列化时(使用一些第 3 方库)。
有没有办法列出调用 toString() 时的所有情况?更好的是,只在我的包中为 类 设置它,或者以其他方式过滤琐碎的情况,例如 log("index=" + index)
?或禁止隐式 toString() 用于我项目中的特定 类?
我的项目实际上使用 Java 7 并针对 Android 编译。我目前使用 Eclipse (ADT),并且启用了 Lint 分析。但我愿意切换工具和环境。
您可以尝试 JArchitect 及其 CQLinq 功能,例如您可以这样执行查询:
from m in Methods where m.IsUsing ("java.lang.String.toString()") select m
您还可以定义高级查询,您可以在其中搜索特定包或 类 中的结果。
已升级到 Android Studio 1.3 版。它完全按照我的意愿显示了关于隐式 toString()
的警告!