Переменная экземпляра Java не обновляется, несмотря на присвоениеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Переменная экземпляра Java не обновляется, несмотря на присвоение

Сообщение Anonymous »

Я создаю мод для Minecraft с тканью. В определенном классе метод изменяет определенную переменную(

Код: Выделить всё

gateClosed). Однако, когда функция вызывается снова на следующем тике, переменная экземпляра остается той же (false).  Из-за этого ворота всегда будут считать, что они открыты, и будут закрываться каждый раз, когда условие закрытия ворот истинно, и никогда не откроются, поскольку предполагается, что они уже открыты. Если я присвою переменной значение true
при инициализации, попытка прочитать ее все равно вернет false, несмотря на то, что код для установки значения true и false один и тот же.
Этот код будет печатать в консоли «закрытие ворот» каждый тик, если условие закрытия истинно, но если условие закрытия ложно, он ничего не будет печатать.

Код: Выделить всё

public class Gate {
private boolean gateClosed = true;
public void update(ServerWorld world) {
boolean shouldBeClosed = /* should be closed */
// If there is a leader nearby and the gate is not closed, close the gate
if (shouldBeClosed && !this.gateClosed) {
if (!world.getPlayers().isEmpty()) {
world.getPlayers().getFirst().sendMessage(Text.literal("closing gate;"));
}
closeGate(world);
this.gateClosed = true;  // Update the gate status after closing it
return;
}

// If there is no leader nearby and the gate is closed, open the gate
else if (!shouldBeClosed && this.gateClosed) {
if (!world.getPlayers().isEmpty()) {
world.getPlayers().getFirst().sendMessage(Text.literal("opening gate;"));
}
openGate(world);
this.gateClosed = false;  // Update the gate status after opening it
return;
}
}
}

public class Program {
static List Gates = new ArrayList()
public void onInit(){
Gates.add(new Gate())
}
public void onTick(){
for (Gate gate : Gates) {
gate.update()
}
}
Я могу подтвердить, что ни один класс не наследует этот класс, доступ к переменной осуществляется только в этом методе, в моем проекте нет отражения, и метод вызывается один раз за такт.< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... assignment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Подсказки по вводу, цепное присвоение и множественное присвоение
    Anonymous » » в форуме Python
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Как получить «детский» метод экземпляра класса, когда обновляется атрибут экземпляра «родитель»?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Переменная экземпляра сбрасывается в Java
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Переменная переменная методу в JSP Java
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Android – интерфейс приложения не обновляется/не обновляется
    Anonymous » » в форуме Android
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»