有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在构建一个安卓应用程序(但这对本文并不重要),我正在编写一个名为ScrollUntillSelectedAvatar()的方法,该方法包含一个类:

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()中的avatarPageHorizontalScrollView(作为参数传递给该方法)的正确方法是什么

我发现(AvatarManager.this.avatarPageHorizontalScrollView)的方式似乎不是最好的方式

谢谢大家的帮助:)


共 (1) 个答案

  1. # 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);
                }
            };
        }
    }