Intellij idea IntelliJ IDEA:如何为内部类启用导入

Intellij idea IntelliJ IDEA:如何为内部类启用导入,intellij-idea,Intellij Idea,当我在IDEA 12中粘贴带有内部实体(类或枚举)名称的代码段时,我会看到一个对话框,用于导入该实体的包。若我正在处理的类和实体在同一个包中,IDEA只写外部类名和实体名前的一个点。这比在文件开始时在导入部分导入实体更糟糕。如何禁用这种行为并强制IDEA以独占方式在导入部分导入所有内容?老实说,当在其父类之外使用内部类时,引用外部类而不是在顶级导入内部类才有意义,否则,为什么该类是内部类而不是顶级类?从我的观点来看,如果您正在大量使用其父类之外的内部类(您说100次),那么您不认为您应该检查您的

当我在IDEA 12中粘贴带有内部实体(类或枚举)名称的代码段时,我会看到一个对话框,用于导入该实体的包。若我正在处理的类和实体在同一个包中,IDEA只写外部类名和实体名前的一个点。这比在文件开始时在导入部分导入实体更糟糕。如何禁用这种行为并强制IDEA以独占方式在导入部分导入所有内容?

老实说,当在其父类之外使用内部类时,引用外部类而不是在顶级导入内部类才有意义,否则,为什么该类是内部类而不是顶级类?从我的观点来看,如果您正在大量使用其父类之外的内部类(您说100次),那么您不认为您应该检查您的设计吗

无论如何,您可以在IntelliJ的
设置>编辑器>常规>自动导入
中控制自动导入功能


另一方面,如果您想为内部类导入,请转到
Settings>Editor>code Style>Java>imports
并标记
Insert imports for internal class
复选框。

IntelliJ比您更了解Java。我不确定你想做什么,但我相信IntelliJ。它只在我使用它时将导入放在顶部。@duffymo我已经纠正了这个问题。也许现在会更清楚。将代码粘贴到没有导入实体的其他文件中会导致内联导入。这意味着,如果代码段中有100个实体实例,则每个实例前面都会有实体的外部类名和一个点。谢谢!当然,在特性实现之后,我会重构我的代码设计。我将把枚举移到类外。仍然在导入部分导入是我更喜欢的行为。虽然我不确定我是否同意第一句话,但我很感激你的回答。如果将java Map collections类的Entry内部类作为一个类的示例使用,那么您会如何使用内部类呢?可能说review your design有点生硬。我确实明白在一些本地化的地方进行此类导入的意义,但由于在Java中,所有导入都是文件的全局导入,因此通过声明内部类,您最终会失去名称空间的好处。换句话说,将
Map.Entry
导入一个小的、以用途为中心的文件并不是什么大问题。在一个处理业务逻辑并具有许多其他导入的类中,不要认为这样做是一样的,
Map.
为读者提供了与该类型相关的上下文。