当前位置:  开发笔记 > 编程语言 > 正文

如何找到Intellij Idea中所有未使用的类?

如何解决《如何找到IntellijIdea中所有未使用的类?》经验,为你挑选了2个好方法。

有一个检查"未使用的声明",它可以找到Intellij Idea中所有未使用的代码.(看到这个问题)但我想找到所有未使用的类,而不是方法,变量等.只有类.(很难找到3000个结果列表中的类).我怎么能这样做?



1> BlondCode..:

Ctrl+ Shift+A

输入"未使用的声明"

单击"未使用的声明"上的双击

将弹出设置

单击Java /声明冗余/未使用声明

在右下角选择"动态编辑器设置"

取消勾选检查字段,...,检查参数.只勾选检查类.

按确定

Seetings关闭

在菜单栏上单击按名称分析/运行检查(或Ctrl+ Alt+ Shift+ I)

插入文本"未使用的声明"

选择"未使用的声明Java |声明冗余"

搜索开始

在完成时检查Idea底部的工作状态:享受结果和清理混乱代码的伟大感觉.:)


它忽略了"只检查类"配置,因此我得到了许多不必要的结果(未使用的方法,字段等,更糟糕的是,其中许多是误报,有几个原因......).
Studio 3.0中有一个更改只有检查类选项在步骤之后:选择"未使用的声明Java |声明冗余"
其中一个专门用于IntelliJ Idea用法,另一个用于通用Java.我不会说这些是重复的.
我们无需更改全局设置即可使用不同的参数运行检查。“按名称运行检查”操作将弹出检查设置。

2> Andrew Janke..:

我不认为这是可行的.我怀疑这个功能是故意遗漏在IDE之外的,因为它不能像其他"删除未使用的XXX"重构一样安全使用.

未使用的声明IDEA(和AFAIK,NetBeans)查找的是私有成员和本地变量:从类或范围之外无法访问的内容,甚至是动态内容.(好吧,至少没有使用您不应该使用的反射或JVM黑客攻击.)无论外部代码对您的库做什么,它都不会导致这些东西被使用,因为它们的范围有限并且IDE可以看到所有这些.编译器可以通过查看您的代码来确定这一点.

对于类,即使它们没有public访问权限,也可以动态引用它们Class.forName(),这实际上发生在实时代码中.因此,即使它们显然未在项目代码中使用,也可能会根据您使用库运行的外部代码而使用它们.因此,IDE无法保证删除这些类不会改变外部可观察行为.

这就是为什么我认为IDEA不提供这种行为:它可能会给用户带来错误的安全期望,而删除它们并不是一种安全的重构.


好吧,它在实际查看文件时会使类名变灰并给你一个"删除未使用的类"的意图动作,所有缺少的就是能够自动找到它们.当然有一些方法可以破坏事物,但许多重构都是如此.
从分析安全性的角度来看,Class.forName()可能与使用反射来读取/设置类上的私有字段没有任何不同.因此,如果IntelliJ将为字段执行此操作,那么对于为什么它也不会为类执行此操作也不是可接受的答案.在任何一种情况下,分析结果都不是100%保证是安全的.
推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有