小编Tre*_*vor的帖子

使用setter将服务注入Enum ......糟糕的做法?

这被认为是不好的做法吗?本质上,基于枚举我想在接口中调用特定方法.每个枚举都有自己的接口实现(WalkImpl,RunImpl,JogIMpl等),所有这些都基于ActivityService接口.我只是想知道这是将服务"注入"Enum的正确方法.我这样做是因为我无法自动提供服务.谢谢

@Component
public class HelloWorldImpl implements HelloWorld {

private enum MyEnum{

    WALK {
        @Override
         public void execute() {
            System.out.println("I am walking");
            activityService.doSomethingWithMe(this.name());
        }
    },
    RUN{
        @Override
        public void execute() {
            System.out.println("I am running");
        }
    },JOG{
        @Override
        public void execute() {
            System.out.println("I am jogging!");
        }
    }, SKIP{
        @Override
        public void execute() {
            System.out.println("I am skipping!");
        }
    };

    public abstract void execute();

    private static ActivityService activityService;

    public void setActivityService(ActivityService activityService) {
        this.activityService = activityService;
    }
}


@Autowired
ActivityService activityService;


 @Override
 public void …
Run Code Online (Sandbox Code Playgroud)

java enums spring

4
推荐指数
2
解决办法
4398
查看次数

标签 统计

enums ×1

java ×1

spring ×1