在Java中,this.method()和method()有什么区别?
呼叫和(包括性能差异)之间有什么区别吗?this.method()
method()
呼叫和(包括性能差异)之间有什么区别吗?this.method()
method()
唯一重要的时间是,如果你正在使用例如OuterClass.this.method()
class OuterClass {
void method() { }
class InnerClass {
void method() {
OuterClass.this.method(); // not the same as method().
}
}
}
这些构造之间绝对没有区别,生成的字节码将完全相同,因此不会影响性能。 如果未显式定义,则在编译期间解析。this
使用显式的唯一原因是可读性 - 有些人发现它更容易阅读,因为这表明这是当前对象的实例方法。this
this
另请注意,如果是静态的,则不鼓励使用和误导。method()
this
private static void method() {
}
private void foo() {
this.method(); //generates warning in my IDE for a reason
}
在这种情况下,它对性能也没有影响。