2015-10-02 5 views
0

В Java можно объявить параметр примитивного типа (int, double ...), изменить его значение в методе, когда вы покидаете метод, значение переменной изменяется?Изменение значения примитивной переменной в методе?

спасибо.

+0

Предполагая, что вы хотите 'int x = 1; makeItTwo (х); // теперь x is 2', тогда это невозможно, так как Java всегда проходит по значению. Ваш лучший шанс - 'x = makeItTwo (x);' где 'makeItTwo' * возвращает * новое значение. – Pshemo

+1

См. Это для справки: http://stackoverflow.com/questions/4319537/how-do-i-pass-a-primitive-data-type-by-reference – javatutorial

+0

Вы можете обмануть и сделать свой параметр 'int [] 'с длиной 1. –

ответ

0

Это не просто, из-за способа обработки параметров java. Примитивы (например, int или long) передаются по значению, Objects по ссылке. Это означает, что внутри методов можно управлять только Objects, и изменения будут видны вне метода. Если вы хотите получить это поведение, вам придется использовать оберточные классы:

class Wrapper<class T>{ 
    private T val; 

    public Wrapper(T v){ 
     val = v; 
    } 

    public void setVal(T v){ val = v; } 
    public T getVal(){ return val; } 
} 
Смежные вопросы