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()之后的大括号这部分该怎么理解,请高手给指点一下了,谢谢。
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#里面的匿名类