2016-05-31 1 views
-2

私はフィールドを使ってメソッドを変更しています。私がthis.myField=5の場合、フィールドは変更されます。しかし、私が行う場合myField=5フィールドは変更されません。 intellijの設定で、thisディレクティブが存在しなくてもそれを暗示するように設定する方法はありますか?私は別のIDEから複数のファイルをインポートしていますが、それぞれを変更することは過度です。intellijは「this」というキーワードを暗示していません

//this fails to change myField in IntelliJ 
public class MyClass{ 
    int myField; 

    public void changeMyField(int x){ 
    myField=x; 
    } 
} 

//this SUCCEEDS to change myField in IntelliJ 
public class MyClass{ 
    int myField; 

    public void changeMyField(int x){ 
    this.myField=x; 
    } 
} 
+7

これはintellijのことではなく、基本的なJavaのことです。 'myField'というローカル変数がない場合は、インスタンス変数を変更するか、定義していないコンパイラエラーが発生します。 – azurefrog

+3

これはコンストラクタであり、あなたの引数の1つに 'myField'という名前が付けられていますか? :) – alfasin

+0

言語セマンティクスはIDE設定ではありません。それがIDEAで壊れている場合、それは他のどのツールでも壊れているに違いありません。 – molbdnilo

答えて

1

おそらく、関数へのパラメータの名前は、変更するフィールドと同じ名前になります。インスタンス変数と同じ名前のパラメータがある場合、このパラメータは "this"を使用せずにインスタンス変数を隠蔽し、実際にはアクセス不可能にします。

azurefrogが指摘しているように、これはJavaのものなので、intelliJ設定でこの動作を変更することはできません。

+0

私はそれを見落とした。 Duh !!今は受け入れることができず(8分待たなければならない)、会議に出かける必要があります。だから私は後で受け入れます。ありがとう! –

+0

問題はありません、幸運:) –

関連する問題