2

Eclipse は、フィールドの宣言、呼び出されたメソッドなどを開く機能を提供します。

( F3または右クリック => 宣言を開く、または呼び出されたメソッドを Ctrl + クリック)

ただし、列挙型メソッドの場合、この機能は機能しません。たとえば 、コードのどこかで呼び出され、上記の組み合わせでMyEnum.values();の宣言を開こうとしても明らかに機能しません。values()

Eclipse がそのような列挙型メソッドの宣言を開かないのはなぜですか?

4

1 に答える 1

3

Eclipse がそのような列挙型メソッドの宣言を開かないのはなぜですか?

ソースコードでまったく宣言されていないためです。それらはコンパイラによって自動的に提供されます-どこに取り込まれると思いますか? MyEnumただし、(メソッドではなく) Ctrlキーを押しながらクリックするとvalues()、列挙型が問題なく開くはずです。

JLS のセクション 8.9.3から:

列挙型 E のメンバーは、次のすべてです。

  • ...
  • 次の暗黙的に宣言されたメソッド:

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

通常の「宣言に移動」手法は、ソース コードに実際に存在するすべてのメソッドに対して機能することに注意してください。

于 2014-04-25T13:15:48.210 に答える