2016-08-25 86 views
0

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

我在同一个包中有多个类,有些标有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项目正确构建。这些课程是正确的。

回答

3

文件标有enter image description here的行家模式是java源文件呈现在一个目录 - 从标源根(或它的子目录)的IntelliJ。

标记为enter image description here的文件是Java源文件存在于未被IntelliJ标记为源根目录(或其子目录)的目录中。

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

因为你可以看到下面链接的每个图标的完整描述:

  • Symbols - 在这里你可以找到enter image description here图标
  • File Types - 在这里你可以找到enter image description here图标

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

相反,如果文件位于标记为源根目录树的目录树下,则该文件将被识别为类,注释,接口或枚举,并且由于是源的一部分,因此可以使用命令Find Usages ALT+F7来查看该文件。


附加说明。如果文件具有扩展名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 { 
} 
+0

我张贴的包树和java目录标记为源文件夹。它们与类文件存在于同一个目录中,但是标记为J. –

+0

我明白了。尝试关闭并重新打开IntelliJ以查看它是否有效。 –

+0

我在我的IntelliJ上做了一个测试,我更新了答案以告诉你什么时候发生。 –

相关问题