有没有更好的方式来呈现这段代码?
while (vIter.hasNext()) {
Long actId = (Long) vIter.next();
if (actId == -1)
vRetActIds.put(actId,"N");
else
vRetActIds.put(actId,"N");
}在这里,我觉得if else可以变得多余。在迭代器列表中有一个值-1,如果存在,应该将其设为"N"。
发布于 2012-02-21 16:46:03
你的两个指令在if的两边是相同的!我怀疑你贴错了什么东西。让我们假设它们是不同的("Y"和"N") :)您可以简单地使用ternary operator编写它
while (vIter.hasNext()) {
Long actId =(Long)vIter.next();
vRetActIds.put(actId, actId == -1 ? "N" : "Y");
}EDIT:从你的评论来看,似乎你每次都想把值设置为'N‘?在这种情况下,您根本不需要if ...
while (vIter.hasNext()) {
vRetActIds.put((Long)vIter.next(), "N");
}发布于 2012-02-21 16:52:03
如果我们可以假设您在新的java中使用了某种类型的Collection,那么这样的代码会更简洁,不会因为空指针而崩溃?
Long MINUS_ONE = Long.valueOf(-1);
while (Long actId : vIter)
{
vRetActIds.put(actId, MINUS_ONE.equals(actiId) ? "N" : "Y");
}发布于 2012-02-21 16:46:41
三元条件语句就可以了。
vRetActIds.put(actId, actiId == -1 ? "N" : "Y");https://stackoverflow.com/questions/9374471
复制相似问题