记录下这种使用。
SingleThreadEventExecutor doStartThread(
....
SingleThreadEventExecutor.this.run();
....
)
SIngleThreadEventExecutor.this 引用指向的是NIoEventLoop。
所以这里执行的是NioEventLoop下的run()方法也就是无限循环的selector.select()的轮询。
请注意是A.this 中间有点"."
############关键点
以前在构造函数中对this的使用和一般函数对this 的使用都是指向当前对象。
看到这个不是特别的明白。于是做了下测试。
例子逻辑:
对象A extends 对象B
对象B extends 抽象对象C
抽象对象C extends 抽象对象D
在A test(){
print: A.this.getClass().getName() //result: A
print: A.super.getClass.getName() //result A
}
在B test1(){
print: B.this.getClass().getName() //result: A
print: B.super.getClass.getName() //result: A
}
在C test3(){
print: C.this.getClass().getName() //result: A
print: C.super.getClass.getName() //result: A
}
在D test4(){
print: D.this.getClass().getName() //result: A
print: D.super.getClass.getName() //result: A
}
结果遵循了这样的逻辑,如果单对一个抽象类且无实例继承它,抽象类.this 使用 会提示没有enclose subClass。
如果对 类.this/super 都指向了对该类的实现的最终子类或者无子类实现的自身类。