[Java] странность

Статус
В этой теме нельзя размещать новые ответы.
608
5
15
Есть код:
Код:
tile.slots[23] = UtilOthers.amendStackSize(tile.slots[23], -1);

public static ItemStack amendStackSize(ItemStack stack, int amount)
    {
        try
        {
            if(amount > 0)
            {
                if(stack.stackSize < 64) stack.stackSize++;
            }
            else if(amount < 0)
            {
                if(stack.stackSize > 1) stack.stackSize--;
                else stack = null;
            }
        }
        catch(NullPointerException n)
        {
            n.printStackTrace();
        }
        
        return stack;
    }

Почему не работает такой:
Код:
UtilOthers.amendStackSize(tile.slots[23], -1);
Ведь мы передаём объект tile.slots[23], который нулим внутри метода, но tile.slots[23] всеравно остаётся неизменной.
 
608
5
15
Разве tile.slots[23] и stack внутри метода не одно и то же?
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Неа, он внутри метода только null будет.
Тоже самое, что если ты передашь в аргумент int какой-то и приравняешь его к чему-то. Он будет равен этому только в методе, а сам не изменится.
 
608
5
15
Ну ок, спасибо, закрыто.
 
667
7
2
Если принципиально можно написать им, ну или позвонить. >вот
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху