Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java eclipse包资源管理器:文件节点重复类型节点?_Java_Eclipse - Fatal编程技术网

Java eclipse包资源管理器:文件节点重复类型节点?

Java eclipse包资源管理器:文件节点重复类型节点?,java,eclipse,Java,Eclipse,在eclipse中激活包资源管理器的Java成员时,树层次结构将变为源文件夹>包>Java文件>类型>方法。加上Mylyn,这真的很方便。但是,我觉得Java文件节点是多余的。由于每个文件只包含一个“根”类型,因此在文件节点下始终只有一个类型节点显示相同的名称。这只会占用空间,不会添加任何信息。在这个树中只包含Java语言元素会更有意义:package>type>members。 禁用成员时,可以将类型节点替换为文件节点,以避免从文件中加载附加信息。但当成员被启用时,它不会 是否有一些选项使pa

在eclipse中激活包资源管理器的Java成员时,树层次结构将变为源文件夹>包>Java文件>类型>方法。加上Mylyn,这真的很方便。但是,我觉得Java文件节点是多余的。由于每个文件只包含一个“根”类型,因此在文件节点下始终只有一个类型节点显示相同的名称。这只会占用空间,不会添加任何信息。在这个树中只包含Java语言元素会更有意义:package>type>members。 禁用成员时,可以将类型节点替换为文件节点,以避免从文件中加载附加信息。但当成员被启用时,它不会


是否有一些选项使package explorer跳过文件节点,或者我在这里遗漏了一些基本原理?

我认为,如果您研究源代码,文件是外观中非常重要的一部分。它们可以不仅仅是java文件(不包含类型),还可以包含多个类型(包含非公共类的文件)等等。如果只跳过文件名,那么在包级别下会有一堆类,并且不知道哪个类属于哪个文件。

@Wolfgang,我同意你的理由。在绝大多数情况下,.java文件与其包含的类型之间存在1对1的映射。虽然在一个.java文件中可以有多个顶级类型,但这种做法并不常见,尤其是在内部类型出现之后。可以说,即使您正在使用多个顶级类型特性,与.java文件的显式关系也不那么重要。如果删除文件中的所有类型,该文件可能会消失

不幸的是,没有抑制.java文件节点的选项。我怀疑这主要是出于历史惯性的原因。各种导航视图早在创建时就作为基本文件导航器启动

我建议打开EclipseJava开发人员工具的增强请求


我同意你关于非Java文件的观点。但是,每个java文件只能有一个顶级类型。所有其他类型都是内部类型,因此属于一个顶级类型的成员。在树中,内部类型是顶级类型的子节点。因此,结构将非常清晰地表示。@Wolfgang您可以在一个java文件中有多个非嵌套类。但其中只有一个必须公开。在类型层次结构上,这些类与public处于同一级别。