Guest Posted May 3, 2017 Posted May 3, 2017 Is there any way to make Java pass ints by reference and not value? Not just ints, but doubles, floats, short, byte, long, etc. ^ All of these pass by value, not reference.
Team Cape Posted May 3, 2017 Posted May 3, 2017 (edited) try to pass in an Integer instead of an int Edited May 3, 2017 by Imateamcape
Container Posted May 3, 2017 Posted May 3, 2017 (edited) 7 minutes ago, Noidlox said: Is there any way to make Java pass ints by reference and not value? Not just ints, but doubles, floats, short, byte, long, etc. ^ All of these pass by value, not reference. It's not really do-able in Java. EDIT: You could pass an int[]. Edited May 3, 2017 by Container
Vilius Posted May 3, 2017 Posted May 3, 2017 Java is a pass by value and Integer is immutable. So no, you cannot pass an ints reference in the arguments of a method.
Guest Posted May 3, 2017 Posted May 3, 2017 8 hours ago, Vilius said: Java is a pass by value and Integer is immutable. So no, you cannot pass an ints reference in the arguments of a method. Makes sense. Thank you 9 hours ago, Container said: It's not really do-able in Java. EDIT: You could pass an int[]. With arrays you can.... Interesting
Botre Posted May 3, 2017 Posted May 3, 2017 Just... wrap it in an object. public class MutableInteger { private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } }
Guest Posted May 3, 2017 Posted May 3, 2017 1 hour ago, Botre said: Just... wrap it in an object. public class MutableInteger { private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } } Getters and setters to the rescue. I'm writing this down. Thank you!
Team Cape Posted May 3, 2017 Posted May 3, 2017 15 hours ago, Vilius said: Java is a pass by value and Integer is immutable. So no, you cannot pass an ints reference in the arguments of a method. ^ my bad, haven't tested it, figured it was worth a shot. if you need it, then i'd just make a class with an int field