У меня есть ошибка действительно действительно странная с Java здесь!Ошибка при отклонении оператора if в java-программе
У меня есть LinkedList
с размером три, и когда я сравниваю его с нулем, он оценивается как True
! Почему, ради бога, это происходит !?
Код:
long depth = 0;
long initial = System.currentTimeMillis();
OthelloStateNode root = new OthelloStateNode(_state);
List<OthelloStateNode> children = root.generateChildren();
System.out.println("SIZE: " + children.size());
if (children.isEmpty()) {
return null;
}
Функция generateChildren():
public List<OthelloStateNode> generateChildren() {
// expand children, if necessary
if (children == null) {
children = new LinkedList<>();
for (OthelloMove move : state.generateMoves()) {
OthelloStateNode child = new OthelloStateNode(state.applyMoveCloning(move));
child.movement = move;
child.parent = this;
children.add(child);
}
}
return children;
}
Выход println
является "Размер: 3"! Нет причин для этого быть True
.
По-видимому, если я удаляю System.currentTimeMillis()
, он работает правильно ... Но это не должно быть связано с вопросом, если 3 равно 0 или нет, не так ли?
Кто-нибудь знает об этом? Вот код, если вы хотите, чтобы загрузить и протестировать, если это также происходит в вашей машине: https://docs.google.com/file/d/0Bxl_AQ6nM3yXVnAzdXg5MFUtVTg/edit
Он возвращает true или возвращает null? Здесь нет возврата. –
Я готов сделать ставку на то, что это не ошибка Java. –
Можем ли мы определить определение класса OthelloStateNode и метод generateChildren()? –