gpt4 book ai didi

java - DI、Guice 和策略模式

转载 作者:行者123 更新时间:2023-12-01 16:33:43 25 4
gpt4 key购买 nike

假设我有以下基类,Queen 和 Knight 作为其派生类。 WeaponBehaviour 是一个接口(interface)。我无法弄清楚如何根据具体的 GameCharacter 类型使用 Guice 注入(inject)武器。

public abstract class GameCharacter {
@Inject
protected WeaponBehaviour weapon;

public GameCharacter() {

}

public void fight() {
weapon.useWeapon();
}

public void setWeapon(WeaponBehaviour weapon) {
this.weapon = weapon;
}
}

最佳答案

您可以使用Binding Annotations .

子类:

class GimliSonOfGloin extends GameCharacter {

@Inject
public void setWeapon(@Axe WeaponBehaviour weapon) {
super.setWeapon(weapon);
}
}

注释:

@BindingAnnotation 
@Target({ FIELD, PARAMETER, METHOD })
@Retention(RUNTIME)
public @interface Axe {}

绑定(bind):

bind(WeaponBehaviour.class)
.annotatedWith(Axe.class)
.to(MyAxe.class);

关于java - DI、Guice 和策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11667134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com