не выполняйте чтение файла в конструкторе, создайте метод (возможно закрытый), который выполняет чтение файла и установку значений в ConfigManager.
Затем в конструкторе, где вы пытаетесь снова вызвать конструктор, просто вызовите метод.
т.е. не вызывайте конструктор снова.
обновление - я бы организовал код следующим образом:
ConfigManager(String fileName) {
File file = new File(fileName);
if (!file.exists()){
// create this method -- Im assuming its ok to put the default
// config on the path where the file did not exist.
createDefaultConfigFile(fileName);
}
parseConfigFile(fileName, ...); // create this method too
}
это явно не рабочий код, и я не знаю точно, что вы делаете, так что насколько я могу. Но это более читабельно, чем у вас сейчас, и немного более организовано. Кроме того, вы действительно хотите создать новый файл конфигурации по умолчанию, если указанный файл не существует? Почему бы не открыть предупреждение о том, что конфигурация не существует, поэтому вы используете значения по умолчанию, но не пишете файл по умолчанию? У вас может быть причина написать значение по умолчанию, и если это правда, тогда хорошо, но если вам не нужно, не добавляйте больше работы ...