Java 如何设置外部类';s变量
我想将属于“MySurface”的“holder”设置为内部构造函数holder,但这不起作用。我不想更改变量的名称。因为Java 如何设置外部类';s变量,java,inner-classes,Java,Inner Classes,我想将属于“MySurface”的“holder”设置为内部构造函数holder,但这不起作用。我不想更改变量的名称。因为MyThread嵌套在MySurface中(并且holder参数隐藏holder实例属性,请参见下文),您必须限定封闭类: public class MySurface extends Surface View implements SurfaceHoler.Callback { SurfaceHoler holder; class MyThread extends Thre
MyThread
嵌套在MySurface
中(并且holder
参数隐藏holder
实例属性,请参见下文),您必须限定封闭类:
public class MySurface extends Surface View implements SurfaceHoler.Callback {
SurfaceHoler holder;
class MyThread extends Thread {
public MyThread (SurfaceHolder holder, Context context){
this.holder = holder;
}
}
}
在所附的类中,此
指的是MyThread
或者,您可以通过重命名参数来删除此。:
MySurface.this.holder = holder;
此外,您可能会发现Oracle嵌套类教程的内容非常有趣。
MySurface.this.holder=..
public class MySurface extends Surface View implements SurfaceHoler.Callback {
SurfaceHoler holder;
class MyThread extends Thread {
public MyThread (SurfaceHolder surfaceHolder, Context context){
holder = surfaceHolder;
}
}
}