0
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class ShowFileStatus {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String uri = args[0];
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);
Path file = new Path(args[0]);
FileStatus stat = fs.getFileStatus(file);
System.out.println(stat.getLen());
}
}
getFileStatus()
的實施是在FileSystem
類和FileSystem
類需要延長使用getFileStatus()
方法.. 一個抽象的方法,但在上面的代碼,我可以使用方法,無需擴展FileSystem
類。 如何?我無法理解這一點?抽象方法
但是,我們如何使用getFileStatus()方法而不定義它 – pareekrachit
您錯過了Java的動態特性。實際的方法調用是根據參考運行時間決定的。這就是所謂的多元主義。看起來,您正在考慮的只是靜態(編譯時)綁定的方法,而實際調用是在運行時決定的。 – YoungHobbit