为什么IntelliJ将我的班级标记为J?

时间:2016-08-25 10:13:39

标签: java intellij-idea

有人可以向我解释为什么IntelliJ决定使用enter image description here符号标记我的某些课程吗?

我在同一个包中有多个类,有些类标有enter image description here,而其他类标有enter image description here

我不介意enter image description here不会导致课程失去色彩,更重要的是快捷方式停止工作(!),例如Find usages ALT+F7

enter image description here

* .iml配置文件:

<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
  <excludeFolder url="file://$MODULE_DIR$/target" />
</content>

注意这在(昨天)之前正常工作。刚刚发生在今天。 maven项目正确构建。这些课程是正确的。

2 个答案:

答案 0 :(得分:3)

标有enter image description here的文件是java源文件,显示在来自intelliJ的源根目录(或其子目录)的目录中。

标有enter image description here的文件是源自IntelliJ的未标记为源根目录(或其子目录)的目录中的java源文件。

通常,圆形图标与IntelliJ中识别为源的目录中的文件相关,方块是不在源目录中的文件。

有关每个图标的完整说明,您可以看到以下链接:

  • Symbols - 您可以在此处找到enter image description here图标
  • File Types - 您可以在此处找到enter image description here图标

如果文件不在标记为源根的目录树下,则它只是一个文件。

相反,如果文件位于标记为源根目录树的目录树下,则会将其识别为类,注释,接口或枚举,并且使用命令Find Usages ALT+F7可以看到它,因为它是源的一部分。 / p>

补充说明。如果文件具有扩展名java,但不是java类(例如,如果文件为空),则图标也是enter image description here,如果存在于标记为源树的树中,因为IntelliJ无法理解它是否为一个类,一个枚举,一个接口或不同的东西。

请检查标记为enter image description here的文件的内容。例如,类的声明可能是错误的。

例如,具有此内容的文件MyClass.java

public clas MyClass {
}

有图标enter image description here,因为类的声明是错误的。

更正以下更改图标为enter image description here

// Added an s to class
public class MyClass {
}

答案 1 :(得分:0)

存放java文件的目录不是源代码目录。

您可以在Intellij中标记目录。

这里描述https://www.jetbrains.com/help/idea/2016.2/configuring-content-roots.html

您也可以右键单击目录并使用标记目录。

如果你使用maven项目,你应该遵循maven模式的目录

https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html