【问题标题】:Remove redundant casts in Java删除 Java 中的冗余强制转换
【发布时间】:2017-02-18 19:22:00
【问题描述】:

我一直在生成一些使用大量强制转换的 Java 代码,现在它们中的大多数都是多余且不必要的。

检查代码的所有用法以删除它们可能非常乏味,所以:有没有工具可以帮助识别(和删除)多余的强制转换?

【问题讨论】:

  • 您的 IDE 应该为您执行此操作。如果你不使用 IDE,那你为什么不呢?
  • 至少有一个 IDE 不这样做(NetBeans)。我有理由在 Eclipse(即 maven 集成)上使用它进行日常工作。
  • 我在 Android Studio 中遇到了同样的问题:分析 > 代码清理

标签: java casting refactoring


【解决方案1】:

这可以使用 Eclipse Helios 自动完成。在您的项目中,转到属性 -> Java 代码样式 -> 清理。在那里,编辑配置文件,转到“不必要的代码”选项卡并选中“删除不必要的演员表”。然后右键单击您的源根目录并单击 Source-> Clean up。任务完成。

【讨论】:

  • 太棒了! :-D 我曾经是 Eclipse 用户,但最近我使用的 NetBeans 越来越多……也许是时候回来了^_^
  • 提前 1 分钟发布答案也会产生影响 ;-)
  • 注意:不仅在清理操作中配置类似的东西,而且在“保存操作”下配置类似的东西也很有用,因此每次保存文件时都会自动应用这些好东西。 (例如,如果可能的话,也使参数等成为最终的)
  • @fortran,听起来这对你有用;你会考虑接受吗?这没什么大不了的,但是我正在处理一些没有被接受的答案的老问题,这里似乎没有更多要说的了。
【解决方案2】:

如果您使用的是 Android Studio,这很容易解决:分析 > 代码清理

【讨论】:

  • IntelliJ 相同(显然)
【解决方案3】:

在 Eclipse 中,在“警告和错误”下,您可以将“不必要的强制转换或实例操作”设置为“警告”或“错误”而不是“忽略”。这应该可以帮助您快速找到它们,尽管它不会为您清理它们。

但您也可以设置一个“保存”操作,配置为“删除不必要的演员表”的“附加操作”。

并且您可以右键单击包资源管理器的某个区域,选择“清理...”并使用“删除不必要的强制转换”操作对其进行配置。

所以基本上这应该很简单:)

【讨论】:

    【解决方案4】:

    您可能应该使用一种工具来分析您的 Java 源代码是否存在潜在问题(例如不必要的强制转换)。

    或许你可以试试 PMD:http://pmd.sourceforge.net

    【讨论】:

    • 抽象语法树是否包含这些不必要的转换?我检查了一个类文件,在我看来编译器优化了它们。但我猜 AST 还包含它们。
    【解决方案5】:

    如果您使用 Eclipse,这应该相当容易。右键单击类/包/项目并选择 Source - Clean Up...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 2014-12-05
      • 1970-01-01
      • 2016-10-16
      • 2011-10-22
      • 1970-01-01
      相关资源
      最近更新 更多