Вы можете обернуть стороннюю библиотеку, чтобы избежать зависимости во время компиляции, но сторонняя библиотека должна быть там во время выполнения.
Самый простой способ - просто делегировать методы (IDE могут создавать их автоматически):
public class DefaultMyConfig {
private Config delegate;
public MyConfig(Config delegate) {
this.delegate = delegate;
}
public String foo() {
return delegate.foo();
}
}
Конечно, вы можете определить интерфейс, который совпадает с Config
интерфейсом, и затем реализовать его в DefaultMyConfig
, или вы можете остаться только с классом.