如何在具有相同类型参数的Java中创建方法?

Sha*_*Sha 5 java oop design-patterns

我的代码如下所示:

enum EnumType {
 CATEGORY,
 GROUP,
 MAIN
}
Run Code Online (Sandbox Code Playgroud)

方法:

public void call(EnumType type){
   switch(type):
     case CATEGORY:
        return methodForCategory();
     case GROUP:
        return methodForGroup();
     ...
}
public void methodForCategory(){
   ... Operations according to EnumType.CATEGORY
}
public void methodForGroup(){
   ... Operations according to EnumType.GROUP
}
public void methodForMain(){
   ... Operations according to EnumType.MAIN
}
Run Code Online (Sandbox Code Playgroud)

但是我想在没有开关/情况下调用它,如下所示;

public void call(EnumType type){
    methodForType(EnumType type);
}
Run Code Online (Sandbox Code Playgroud)

有可能还是有更好的选择?

Gau*_*ani 6

您可以在枚举内创建方法实现,如下所示:

public enum EnumType {

  CATEGORY {

    @Override
    public void processMethod() {
      // Do something here
    }

  },
GROUP {

    @Override
    public void processMethod() {
      // Do something here
    }

  },
MAIN {

    @Override
    public void processMethod() {
      // Do something here
    }

  };

public abstract void processMethod();
}
Run Code Online (Sandbox Code Playgroud)

并将调用方法实现更新为:

public void call(EnumType type){
   type.processMethod();
}
Run Code Online (Sandbox Code Playgroud)

切换代码不应返回任何内容,因为方法的返回类型为void