Две части кода, которые вы включили, функционально эквивалентны. Линия
Cursor oldCursor = mCursor;
создает новую ссылку Cursor
, которая указывает на один и тот же объект, то есть mCursor
и oldCursor
имеют одинаковое расположение в памяти. Поскольку это один и тот же объект, oldCursor.close()
точно такой же, как mCursor.close()
.
Однако, когда вы устанавливаете mCursor
в cursor
, mCursor
больше не ссылается на курсор, который был закрыт; теперь он ссылается на тот же объект, что и cursor
. Любые операции, которые вы выполняете с новым mCursor
, никак не будут затронуты старым mCursor
.
Что касается версии, которую вы должны использовать, я бы лично выбрал первую версию. Однако, если вы чувствуете, что код становится более понятным, создав oldCursor
, обязательно сделайте это. Это точно так же.