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

Best way to pass a variable from outer class to inner class

我正在构建一个 android 应用程序(但这对 post 并不重要)并且我正在编写一个名为 scrollUntilSelectedAvatar() 包含 class:

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

}

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

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

感谢大家的帮助:)

您的做法是唯一正确的。 inner 类 的一些语法看起来很奇怪。但它就是这样。

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