Вы не можете изменить интерфейс Module
, но вы можете обойти его несколькими способами с Guice.
Вы можете заключить исключение:
try (InputStream in = new FileInputStream(System.getProperty("user.dir")+"/src/properties/android.properties")) {
Properties props = new Properties();
props.load(in);
Names.bindProperties(binder(), props);
} catch (IOException e) {
// Yes, it's hard to create Guice exceptions. It's just like that.
Message message = new Message(List.of(this), "Unable to load properties file", e);
throw new ConfigurationException(List.of(message));
}
Вы можете перемещать загрузка файла из модуля:
class MyModule extends AbstractModule {
private final Properties properties;
MyModule(Properties properties) {
this.properties = properties;
}
@Override protected void configure() {
Names.bind(binder(), props);
}
}
И создайте свой модуль следующим образом. Обычно вы должны быть в состоянии выбросить ваши исключения за пределами реализации модуля.
Properties properties = new Properties();
try (InputStream in = FileInputStream(System.getProperty("user.dir")+"/src/properties/android.properties")) {
properties.load(in);
}
Module module = new MyModule(properties);