将变量从外部类传递到内部类的最佳方法

时间:2017-02-01 09:08:14

标签: java class inner-classes

我正在构建一个Android应用程序(但这对帖子来说并不重要)我正在编写一个名为 scrollUntilSelectedAvatar()的方法,其中包含一个类:

public class AvatarManager {

  private HorizontalScrollView avatarPageHorizontalScrollView;

  //mehod that contains the inner class
  public void scrollUntilSelectedAvatar(HorizontalScrollView avatarPageHorizontalScrollView){

        this.avatarPageHorizontalScrollView = avatarPageHorizontalScrollView;

        avatarPageHorizontalScrollView.post(new Runnable() {
            @Override
            public void run() {
                AvatarManager.this.avatarPageHorizontalScrollView.scrollTo(100, 0);
            }
        });
    }

}

我的问题是:在内部类new Runnable()中访问 avatarPageHorizo​​ntalScrollView (我将其作为参数传递给方法)的正确方法是什么。

我找到的方式(AvatarManager.this.avatarPageHorizontalScrollView)似乎不是最好的方法。

感谢大家的帮助:)

1 个答案:

答案 0 :(得分:2)

你这样做的方式 - 是唯一正确的。关于内部类的一些事情的语法可能看起来很奇怪。但就像它一样。

public class A {

    private int a;

    private abstract class B {
        public abstract void printA();
    }

    public B makeB() {
        return new B() {
            @Override
            public void printA() {
                System.out.println(A.this.a);
            }
        };
    }
}