有条件地添加"可选项"与数组初始化语法?

Art*_*s M 5 java arrays syntax if-statement array-initialization

我想知道我是否可以在这里以某种方式轻松获得if语句:

public Object[] tableItemFromVisit(Visit visit, boolean editable) {
    return new Object[] {
            visit.getIdVisit(),
            visit.getProfession().getProfessionName(),
            visit.getSpiProfessional().getFullName(),
            RegularFunctions.getTimeFormat().format(visit.getVisitDate()),
            RegularFunctions.toNormalCapitalizedText(visit.getVisitState()
                    .toString()), visit.getReason(), 
            if (editable) { "Edit" }, 
            };
}
Run Code Online (Sandbox Code Playgroud)

这个结构怎么称呼?数组规范还是什么?无论如何,如果变量"editable"为真,它必须有一个"编辑"字符串,如果它是假的,它不需要任何东西......显然我不想写两个太过类似的返回语句彼此...

Kar*_*k T 3

将上面的数组构造为 anArrayList并返回其toArray?

这个想法的本质是做这样的事情。

ArrayList<Object> ret = new ArrayList<Object>(new Object[] {
            visit.getIdVisit(),
            visit.getProfession().getProfessionName(),
            visit.getSpiProfessional().getFullName(),
            RegularFunctions.getTimeFormat().format(visit.getVisitDate()),
            RegularFunctions.toNormalCapitalizedText(visit.getVisitState()
                    .toString()), visit.getReason()
            // don't add Edit item at all yet
            })

if(editable)
     ret.add("Edit");

return ret.toArray();
Run Code Online (Sandbox Code Playgroud)

我不确定这种初始化是否有效,如果不行Arrays.toList也可以使用,或者只是一一添加。