I want to update java.sql.Timestamp in other method. But it is not updated in main method. Why? Is that passed by value or reference?
package test; import java.sql.Timestamp; import java.util.Date; public class Test { public static void main(String[] args) throws InterruptedException { Timestamp a = null; Date now = new Date(); Timestamp b = new Timestamp(now.getTime()); update(a, b); System.out.println(a); // returns "null", why? } /** * Sets the newer timestamp to the old if it is possible. * @param a an old timestamp * @param b a new timestamp */ private static void update(Timestamp a, Timestamp b) { if(b == null) { //nothing } else if(a == null) { a = b; } else if(a.after(b)) { a = b; } } }