枚举里面的实现类,重写方法,一个枚举就可以搞定。
public enum GunsEnum {
AK("ak47"){
@Override
public void shot() {
System.out.println("ak47 发射了一枚子弹");
}
},
An("an94"){
@Override
public void shot() {
System.out.println("an94 发射了一枚子弹");
}
},
M4("M4A1"){
@Override
public void shot() {
System.out.println("M4A1 发射了一枚子弹");
}
},
;
@Getter
private String name;
GunsEnum(String name) {
this.name = name;
}
public void shot(){
throw new RuntimeException();
}
public static GunsEnum match(String type){
return Arrays.stream(GunsEnum.values())
.filter(o-> Objects.equals(o.getName(),type))
.findFirst()
.orElseThrow(()->new NoSuchElementException("no match GunsEnum by name["+type+"]"));
}
}
使用方式
public static void main(String[] args){
GunsEnum.AK.shot();
GunsEnum.match("M4A1").shot();
}
该博客展示了如何在Java中使用枚举(Enum)来定义不同枪械类型,如AK47、AN94和M4A1,并重写方法实现射击行为。每个枚举实例对应一种枪械,通过`shot()`方法打印不同的射击信息。同时,提供了一个`match()`静态方法根据名称匹配枪械类型,方便使用。
348

被折叠的 条评论
为什么被折叠?



