我正在构建一个 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()
内访问avatarPageHorizontalScrollView(我将其作为参数传递给该方法)的正确方法是什么。
我发现的方式(AvatarManager.this.avatarPageHorizontalScrollView
)似乎不是最好的方式。
谢谢大家的帮助:)
最佳答案
你的做法是唯一正确的。有关内部类的某些内容的语法可能看起来很奇怪。但事实就是如此。
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);
}
};
}
}
关于java - 将变量从外部类传递到内部类的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41975776/