在Eclipse中打开Java枚举方法声明

在Eclipse中打开Java枚举方法声明,java,eclipse,enums,method-declaration,Java,Eclipse,Enums,Method Declaration,Eclipse提供了打开字段声明、调用方法等的功能 (F3或右键单击=>打开声明或Ctrl+单击调用的方法) 但是,对于枚举方法,此功能不起作用,例如。 MyEnum.values()在我的代码中的某个地方被调用,试图用上面提到的组合打开values()的声明显然不起作用 为什么Eclipse不打开这种枚举方法的声明 为什么Eclipse不打开这种枚举方法的声明 因为它们根本没有在源代码中声明。它们是由编译器自动提供的-您希望将它们带到哪里?按住Ctrl键并单击MyEnum(而不是values(

Eclipse提供了打开字段声明、调用方法等的功能

F3右键单击=>打开声明Ctrl+单击调用的方法

但是,对于枚举方法,此功能不起作用,例如。
MyEnum.values()
在我的代码中的某个地方被调用,试图用上面提到的组合打开
values()
的声明显然不起作用

为什么Eclipse不打开这种枚举方法的声明

为什么Eclipse不打开这种枚举方法的声明

因为它们根本没有在源代码中声明。它们是由编译器自动提供的-您希望将它们带到哪里?按住Ctrl键并单击MyEnum(而不是
values()
方法)可以打开枚举,但不会出现任何问题

发件人:

枚举类型E的成员包括以下所有成员:

  • 以下隐式声明的方法:

    /* javadoc... */
    public static E[] values();
    
    /* javadoc... */
    public static E valueOf(String name);
    

请注意,正常的“go to declaration”技术应该适用于源代码中真正存在的任何方法。

谢谢您的回答。当然,MyEnum声明可以毫无问题地打开。我不知道枚举方法没有在源代码中声明。您还可以指出除Enum之外的其他编译器提供的Java代码吗?@Juvanis:没有太多无参数构造函数,嵌套类可能涉及一些合成,以便传播封闭成员、访问私有成员等。因此,我们有一个没有Javadoc的公共API?丑陋的。IDE至少应该尝试将JLS 8.9中的Javadocs混合到合成方法中。