目前在看JavaCollectionsFramework的源代码,AbstractList的内嵌类Itr和ListIterator当中有多个以
AbstractList.this开头的语句:
AbstractList.this.remove(lastRet);
AbstractList.this.set(lastRet, o);
AbstractList.this.add(cursor++, o);我对 类名.this.方法名 的用法很费解,他们应该就是在调用AbstractList自身的方法啊:
public Object set(int index, Object element)
public void add(int index, Object element)
public Object remove(int index)
,那么可不可以把AbstractList.this省略掉呢,AbstractList的源代码中除了以上几个地方,在
调用自身的函数时都不明确写出this.XXX(),那么这里的AbstractList.this.XXXX代表什么含义呢?
AbstractList.this开头的语句:
AbstractList.this.remove(lastRet);
AbstractList.this.set(lastRet, o);
AbstractList.this.add(cursor++, o);我对 类名.this.方法名 的用法很费解,他们应该就是在调用AbstractList自身的方法啊:
public Object set(int index, Object element)
public void add(int index, Object element)
public Object remove(int index)
,那么可不可以把AbstractList.this省略掉呢,AbstractList的源代码中除了以上几个地方,在
调用自身的函数时都不明确写出this.XXX(),那么这里的AbstractList.this.XXXX代表什么含义呢?
解决方案 »
- 这个问题,怎么解决?寻求高手~~~~~~
- 排序问题,请高手指导!
- java.lang.IllegalArgumentException: argument type mismatch
- Java Applet 访问本机Mysql遇到问题
- 求一个正则表达式
- UltraEdit和Jcreator编程时回车后大刮号“{ }”呈阶梯状,怎么样设置能在回车后“{ }”直接对齐?
- 紧急求救---怎样捕捉GUI的快捷键
- java支持中文字符吗?
- 哪位知道SUN 的forte for java 企业版下载后如何安装?一定给分
- 请问怎样使程序间段执行
- 请教:JAVA中JTable中的数据导出到EXCEL中
- 错在何处???
内部类和其外部类有同名的方法,那么在内部类中如果要调用外部类的该方法,当然要用外部类.this.方法()这种形式了。
如:public class Outer {
public class Inner {
public void f() {
System.out.println("Inner.f()");
}
public void g() {
f(); // 输出Inner.f()
Outer.this.f(); // 输出Outer.f()
}
}
public void f() {
System.out.println("Outer.f()");
}}
不用就是overwrite了