В Java можно объявить параметр примитивного типа (int, double ...), изменить его значение в методе, когда вы покидаете метод, значение переменной изменяется?Изменение значения примитивной переменной в методе?
спасибо.
В Java можно объявить параметр примитивного типа (int, double ...), изменить его значение в методе, когда вы покидаете метод, значение переменной изменяется?Изменение значения примитивной переменной в методе?
спасибо.
Это не просто, из-за способа обработки параметров 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; }
}
Предполагая, что вы хотите 'int x = 1; makeItTwo (х); // теперь x is 2', тогда это невозможно, так как Java всегда проходит по значению. Ваш лучший шанс - 'x = makeItTwo (x);' где 'makeItTwo' * возвращает * новое значение. – Pshemo
См. Это для справки: http://stackoverflow.com/questions/4319537/how-do-i-pass-a-primitive-data-type-by-reference – javatutorial
Вы можете обмануть и сделать свой параметр 'int [] 'с длиной 1. –