Моя проблема похожа на следующий код, например:
public void removeSelfFromGrid()
{
if ( grid == null )
throw new IllegalStateException(
"This actor is not contained in a grid." );
if ( grid.get( location ) != this )
throw new IllegalStateException(
"The grid contains a different actor at location "
+ location + "." );
grid.remove( location );
grid = null;
location = null;
}
Я узнал его давно, но я не получаю понятие this
или that
.
Java имеет только this
ключевое слово, а не that
this
означает, что текущий объект, на который вы вызываете метод removeSelfFromGrid
.
Использование этого ключевого слова
Внутри метода экземпляра или конструктора это ссылка на текущий объект - объект, метод которого или конструктор вызывается. Вы можете обратиться к любому члену текущего объекта из метода экземпляра или конструктора, используя это.
Подробнее см. Здесь.
В вашем методе вы использовали if ( grid.get( location ) != this )
, что означает, что объект location
из grid
и текущего объекта (на который вы removeSelfFromGrid
метод removeSelfFromGrid
) такие же или нет