编程语言
首页 > 编程语言> > Java:如何使用“ this”访问外部类的实例变量?

Java:如何使用“ this”访问外部类的实例变量?

作者:互联网

我有一个静态内部类,我想在其中使用外部类的实例变量.当前,我必须以“ Outerclass.this.instanceVariable”格式使用它,这看起来很奇怪,有没有更简单的方法来访问外部类的实例字段?

Public class Outer
{
  private int x;
  private int y;
 private static class Inner implements Comparator<Point>
{
  int xCoordinate = Outer.this.x;   // any easier way to access outer x ?
}
}

解决方法:

静态嵌套类无法引用外部类实例,因为它是静态的,没有相关的外部类实例.如果希望静态嵌套类引用外部类,则将实例作为构造函数参数传递.

public class Outer
{
    private int x;
    private int y;
    private static class Inner implements Comparator<Point>
    {    
        int xCoordinate;

        public Inner(Outer outer) {
            xCoordinate = outer.x;       
        }
    }
}

如果您指的是内部(非静态嵌套)类,并且没有变量名冲突(即,两个变量都称为同一名称),则可以直接引用外部类变量

public class Outer
{
    private int x;
    private int y;
    private class Inner 
    {    
        int xCoordinate = x;
    }
}

标签:outer-join,java,class,instance,field
来源: https://codeday.me/bug/20191012/1897702.html