Java 将条件设置为以某个枚举值开头



如何在java中编写条件来检查以IOS开头的枚举值?

对于以下条件,它只是将其设置为等于IOS但我希望我的条件具有我的getSoftwareName()开始与IOS

if (request.getEquipmentInfo().getSoftwareName() == RouterSwName.IOS) {
}

这是我的枚举类:

 public enum RouterSwName   
{
   JUNOS,
   IOS,
   IOS_XR,
   IOS_XE,
   OTHER; }

怎么样

request.getEquipmentInfo.getSoftwareName().toString().startsWith("IOS")

假设 getSoftwareName() 返回一个枚举,则其toString()应返回原始枚举名称为 String 。然后,您只需检查它是否以" IOS"开头。

你可以:

if (request.getEquipmentInfo().getSoftwareName() == RouterSwName.IOS ||
    request.getEquipmentInfo().getSoftwareName() == RouterSwName.IOS_XR ||
    request.getEquipmentInfo().getSoftwareName() == RouterSwName.IOS_XE)
{
}

您可以将一个属性附加到每个常量,但我只会保留一组单独的属性:

private static final Set<RouteSwName> IOS_ROUTERS =
    Collections.unmodifiableSet(
        EnumSet.of(
            RouteSwName.IOS,
            RouteSwName.IOS_XR,
            RouteSwName.IOS_XE));

然后你可以做:

if (IOS_ROUTERS.contains(request.getEquipmentInfo().getSoftwareName())) {

最新更新