Java intellij不意味着;这";关键词

Java intellij不意味着;这";关键词,java,intellij-idea,Java,Intellij Idea,我有一个字段,我正在通过一种方法更改它。如果我做了this.myField=5,则该字段将更改。但是如果我执行myField=5操作,则字段不会更改。我是否可以在intellij的首选项中设置一种方法,以暗示此指令,即使它不存在?我从另一个IDE导入了一堆文件,更改其中的每一个都是多余的 //this fails to change myField in IntelliJ public class MyClass{ int myField; public void changeMyFi

我有一个字段,我正在通过一种方法更改它。如果我做了
this.myField=5
,则该字段将更改。但是如果我执行
myField=5
操作,则字段不会更改。我是否可以在intellij的首选项中设置一种方法,以暗示
指令,即使它不存在?我从另一个IDE导入了一堆文件,更改其中的每一个都是多余的

//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;
  }
}

可能发生的情况是,函数的参数与要更改的字段同名。当您有一个名为与实例变量相同的参数时,该参数将覆盖实例变量,使其实际上不使用“this”就无法访问


正如azurefrog所指出的,这是Java的东西,因此,您不能通过任何intelliJ设置来改变这种行为。

这不是intelliJ的东西,这是Java的基本东西。如果没有名为
myField
的局部变量,则代码应该修改实例变量,或者给您一个未定义的编译器错误。让我猜猜,这是一个构造函数,您的一个参数名为
myField
?:)同样,您确定它不是这样的:
public void changeMyField(int-myField){myField=myField;}
?我严重怀疑这是您遇到问题的代码。发布一些显示这种行为的实际代码。两个版本都可以正常工作,您发布的代码是否与未能更新的代码完全相同?是的!我忽略了这一点。嗯!!我现在不能接受(必须等8分钟),必须赶去开会。所以我以后会接受的。谢谢没问题,祝你好运:)