本文介绍了我可以对Java Enums使用按位OR的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设你有一个枚举方向

enum Direction{
    North,South,East West
}

我可以编写一个使用bitwise或者比较多个枚举的方法

Could I write a method that uses bitwise or's to compare multiple enums

public boolean canGoDirection(Direction dir){
     return dir | Direction.North;
}

我将上述方法称为

this.canGoDirection(Direction.South | Direction.North);


推荐答案

你不能使用bitwise或类似的东西。尝试更像这样的事情:

You can't use a bitwise or like that. Try something more like this:

public boolean canGoDirection(Set<Direction> dirs){
     return dirs.contains(Direction.North);
}

这样调用:

this.canGoDirection(EnumSet.of(Direction.South,Direction.North));

这篇关于我可以对Java Enums使用按位OR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-14 08:56