我见过Java代码,其中包含:
SomeClass.this.someMethod(someArg);
Blah(AnotherClass.class);
Blah(YAClass.this);
Run Code Online (Sandbox Code Playgroud)
"这个"和"阶级"在这里意味着什么?我习惯将它们作为关键字来引用当前对象并定义一个类,但这是不同的.我的Java书和在线搜索没有得出任何解释.
SomeClass.this/ YAClass.this- this内部类'封闭SomeClass/ YAClass类的引用.
class SomeClass {
private InnerClass {
public void foo() {
SomeClass outerThis = SomeClass.this;
[...]
}
}
}
Run Code Online (Sandbox Code Playgroud)
(你必须要非常小心,这this你可能被应用到任何操作打交道时获得特别Object的参考.常见的情况是syncronising上this的一个内部类,当代码应在外部实例在此进行同步(更好的方法case是使用显式锁对象).)
AnotherClass.class- 班级的java.lang.Class对象AnotherClass.在Java 1.5之前,这是使用Class.forName(初始化类)实现的; 从1.5开始,ldc字节码已经扩展为直接支持.
Class<AnotherClass> clazz = AnotherClass.class;
Run Code Online (Sandbox Code Playgroud)
两者都是在Java 1.1中引入的.
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |