我有一个枚举:
public enum GSProccesingType {
bigCover,
cover,
other
}
在这种情况下,如果封面FileStoreUtils.coverFileName
被选中bigCover
,如果bigCoverFileName
则final String fileName = proccesingType == cover ? FileStoreUtils.coverFileName : "%04d.png";
final String fileName2 = proccesingType == bigCover ? FileStoreUtils.bigCoverFileName : "04d.png";
被选中{04d.png“
我不能为掩护和bigCover作简短的条件
{{1}}
如何将两条线连接到一条正确的线上?
答案 0 :(得分:1)
您可以像这样使用嵌套的三元运算符:
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作为枚举常量。