、DefaultSettings
はすなわち、FirstSettings
とSecondSettings
両方の実装です:
public class DefaultSettings implements FirstSettings, SecondSettings
{
}
のは、あなたがクラスEngineA
とEngineB
public class EngineA
{
@Inject
private FirstSettings settings;
}
public class EngineB
{
@Inject
private SecondSettings settings;
}
を持っていて、同じを注入したいとしましょう実装。
あなたはインターフェイスDefaultSettingsInterface
public interface DefaultSettingsInterface extends FirstSettings, SecondSettings
{
}
を宣言し、次に設定がかもしれDefaultSettings
がDefaultSettingsInterface
public class DefaultSettings implements DefaultSettingsInterface
{
}
を実装することができます:
bind(FirstSettings.class).to(DefaultSettingsInterface.class);
bind(SecondSettings.class).to(DefaultSettingInterface.class);
bind(DefaultSettingsInterface.class).to(DefaultSettings.class).in(Singleton.class);
最も洗練されたソリューション! –