如何使用三元运算符中的枚举检查两个条件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用三元运算符中的枚举检查两个条件?相关的知识,希望对你有一定的参考价值。

我有一个枚举:

public enum GSProccesingType 
    bigCover,
    cover,
    other

这样的条件,如果盖子然后被选中FileStoreUtils.coverFileName,如果bigCover然后选择bigCoverFileName否则“04d.png”

我无法为封面和bigCover制作一个简短的条件

final String fileName = proccesingType == cover  ? FileStoreUtils.coverFileName : "%04d.png";

final String fileName2 = proccesingType == bigCover ? FileStoreUtils.bigCoverFileName : "04d.png";

如何将两条线连接到一条是正确的?

答案

您可以使用嵌套的三元运算符,如下所示:

final String fileName = proccesingType == cover  ? 
                            FileStoreUtils.coverFileName : 
                            (proccesingType == bigCover ? FileStoreUtils.bigCoverFileName : "%04d.png");

,但这很难读。我建议为此创建一个方法:

private String getFilename(GSProccesingType type) 
    switch(type) 
        case cover: return FileStoreUtils.coverFileName;
        case bigCover : return FileStoreUtils.bigCoverFileName ;
        default: return "%04d.png";
    

这个更长,但更容易阅读和理解。

我还建议使用generally accepted naming conventions,并使用ALL_UPPERCASE作为枚举常量。

以上是关于如何使用三元运算符中的枚举检查两个条件?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从 javascript 中的条件(三元)运算符中获取这两个值?

三元条件下的多个 OR 运算符,

三元运算符,如果为真则返回检查条件的快捷方式?

如何在python中编写三元条件运算符? [复制]

三元条件运算符中的多个条件?

如何在 JSX 的三元运算符中调用两个函数?