【问题标题】:Best way to pass a variable from outer class to inner class将变量从外部类传递到内部类的最佳方法
【发布时间】:2017-02-01 09:08:14
【问题描述】:

我正在构建一个 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) 似乎不是最好的方法。

感谢大家的帮助:)

【问题讨论】:

  • 为什么你认为你的方式不对?
  • 不知道,我认为有更好的方法:)

标签: java class inner-classes


【解决方案1】:

您的做法是唯一正确的。关于内部类的一些东西的语法可能看起来很奇怪。但它就是这样。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多