java - 如何在java项目中找到哪个数据类没有覆盖toString()方法

标签 java eclipse tostring

在我们的项目中,某些数据类 (用于 API 请求和响应的 POJO) 正在覆盖 toString() 方法以提供有意义的信息 - 但某些数据类 < strong>不覆盖toString()

当应用程序打印toString() 未被覆盖的数据类的logs 时,它们不会打印有意义的信息,它们只是调用对象类toString( )

所以我们要识别那些数据类并提供toString()实现

有什么方法可以识别未实现toString()方法的类。

查看每个数据类并检查 toString() 方法是一项乏味且耗时的任务。

有没有更好的方法可以使用一些工具(如 eclipse 或其他工具)来做到这一点?

最佳答案

当类未覆盖 toString() - 它必须使用包含类名的默认实现。因此:检查您的日志并向后工作!

或者,您可以使用反射:

  • 启动 JVM 运行,在类路径中包含所有您的类
  • 扫描所有您的类的类路径(或者如果可能:那些类似于您的 POJO 的类)
  • 检查每个类是否实现了toString()

显然,这需要大量工作 - 但没有技术原因说明为什么这不可行。当然,您的主要问题可能是减少要查看的类的数量 - 包含 500 个类的列表也不会太有帮助。

还有一个(潜在的)选项:创建一个 PojoBase 类,它使用反射 来实现 toString() 和可能的 equals()/hashCode() - 然后只需确保所有 POJO 类都扩展那个基类。 (免责声明:当然你必须了解这样做的后果。但我们最近创建了这样一个使用 Apache Commons EqualsBuilder 的 BaseBean,......以这种方式调用)

关于java - 如何在java项目中找到哪个数据类没有覆盖toString()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45319016/

相关文章:

java - selenium webdriver 在 Firefox 上加载页面太慢

Ruby selenium 无法加载此类文件 -- selenium-webdriver (LoadError)

java - 在 Eclipse 中查看 Java 应用程序的日期

c# - 覆盖ToString()以进行调试和记录-字符串是否应该本地化?

tostring - c# stringbuilder tostring 双引号问题

java - 如何使用 Hibernate 处理多个数据库模式?

java - 从 PNG 图像中提取元数据

java - C++ 和 Java 中的大括号初始化

java - 使用eclipse插件编写自定义maven命令集

Java POJO 到 JSON 的转换工具?