Объект будет создан, как только вы вызовете конструктор, но он не будет вам возвращен, пока не будет возвращен метод load.
Но проблема в том, что базовый дизайн не прав. Вы не должны вызывать метод load из конструктора.
Пусть конструктор просто вызовет объект, а затем вызовет метод load для него, чтобы прочитать XML-файл. Вам нужно иметь перегруженные методы чтения в классе, например:
private load()
{
//here i load some xml file by given file name;
}
//for loading from default location
private load(String filePath)
{
//here i load some xml file by given file name;
}
private load(File file)
{
//here i load some xml file by given file name;
}
Вы поняли идею !! И тогда ваша вызывающая программа будет иметь возможность по-разному вызывать метод загрузки для разных ситуаций.
У вас также должно быть два-три разных метода, чтобы сначала получить размер файла, а затем отсортировать соответствующий метод.
Have a look at this thread /119540/java-poluchit-razmer-faila-effektivno to get a better idea about an efficient way to deduce file size.