Lucene 代码中一段 "return new lock(){...}"这里的大括号怎么解释?

来源:百度知道 编辑:UC知道 时间:2024/05/29 02:53:42
MakeLock方法在Java代码里是这样的:

public final Lock makeLock(final String name) {
return new Lock() {
public boolean obtain() throws IOException {
synchronized (files) {
if (!fileExists(name)) {
createFile(name).close();
return true;
}
return false;
}
}

public void release() {
deleteFile(name);
}

public boolean isLocked() {
return fileExists(name);
}
};
}
我初学Java 这段程序看不懂,不知道第二行return new lock()之后的大括号这部分该怎么理解,请高手给指点一下了,谢谢。

Lock() {
public boolean obtain() throws IOException {
synchronized (files) {
if (!fileExists(name)) {
createFile(name).close();
return true;
}
return false;
}
}
类。
new Lock()-->声明一个这个类(匿名类?内部类),并返回结果。
JAVA我不熟悉,感觉像是C#里面的匿名类