Can I add a function to enums in Java?

前端 未结 4 858
长情又很酷
长情又很酷 2020-12-14 05:21

I have an enum, which looks like

public enum Animal {
  ELEPHANT,
  GIRAFFE,
  TURTLE,
  SNAKE,
  FROG
}

and I want to do something like

4条回答
  •  孤城傲影
    2020-12-14 05:55

    I have an other option:

    public enum Animal {
        ELEPHANT {
            @Override
            boolean isMammal() {
                return true;
            };
            @Override
            boolean isReptile() {
                return false;
            }
        },
        SNAKE {
            @Override
            boolean isMammal() {
                return false;
            };
            @Override
            boolean isReptile() {
                return true;
            }
        };
    
        abstract boolean isMammal();
        abstract boolean isReptile();
    }
    

    No need of external Interface and I am quite sure (did not test) it works also on Java7.

提交回复
热议问题