我对我的代码有一个小疑问。我有两个条件,我想知道是否可以使用一种方法或某些方法使这段代码更简单,更短。
if (CoatRandom.randomRule.getLastBlock() % 2 == 0)
{
Clothes[askedCoatRandom.getRandom()].setCurrentChildIndex(CoatRandom.randomRule.getLastBlock() + 1);
CoatRandom.randomRule.addBlock(CoatRandom.randomRule.getLastBlock() + 1);
badCoatRandom.randomRule.addBlock(CoatRandom.randomRule.getLastBlock() + 1);
}
else
{
Clothes[askedCoatRandom.getRandom()].setCurrentChildIndex(CoatRandom.randomRule.getLastBlock() - 1);
CoatRandom.randomRule.addBlock(CoatRandom.randomRule.getLastBlock() - 1);
badCoatRandom.randomRule.addBlock(CoatRandom.randomRule.getLastBlock() - 1);
}
答案 0 :(得分:5)
Thread.currentThread().getContextClassLoader().getResourceAsStream(propertiesFileName)
答案 1 :(得分:3)
您可以组合这两个条件:
int shift = CoatRandom.randomRule.getLastBlock() % 2 == 0 ? 1 : -1;
Clothes[askedCoatRandom.getRandom()].setCurrentChildIndex(CoatRandom.randomRule.getLastBlock() + shift);
CoatRandom.randomRule.addBlock(CoatRandom.randomRule.getLastBlock() + shift);
badCoatRandom.randomRule.addBlock(CoatRandom.randomRule.getLastBlock() + shift);
如果CoatRandom.randomRule.getLastBlock()
每次调用时都返回 same 值,则可以对其进行缓存:
var index = CoatRandom.randomRule.getLastBlock() +
(CoatRandom.randomRule.getLastBlock() % 2 == 0 ? 1 : -1);
Clothes[askedCoatRandom.getRandom()].setCurrentChildIndex(index);
CoatRandom.randomRule.addBlock(index);
badCoatRandom.randomRule.addBlock(index);