我是Java的新手,我正在完成我的第一个使用它的项目。基本上我读了Head First Java和我迄今为止使用过的类的API文档。这是我的Java背景。
这段代码对我有点怀疑,基本上,这句话是什么意思?
DataSource dataSource = new FileDataSource(tiffFile) {
public String getContentType() {
return "image/tiff";
}
};
它是否像“实时方法覆盖”?我仍然没有得到那些括号在那里做的事情。
我真的很感谢你对这个问题的帮助。
干杯。
答案 0 :(得分:3)
你遇到的是一个匿名的内部类。 Java中有很多种嵌套类,熟悉它们对你有好处。我将教程链接作为一个很好的起点。祝你好运!
答案 1 :(得分:2)
它被称为匿名内部类。这将创建FileDataSource
的子类,并调用超级构造函数FileDataSource(tiffFile)
,其中getContentType()
方法将被覆盖。
可以改写如下:
public static class TiffFileSource extends FileDataSource {
public TiffFileSource(File file){
super(file);
}
public String getContentType() {
return "image/tiff";
}
}
DataSource dataSource = new TiffFileSource(tiffFile);