美文网首页
java在一个void函数中,交换两个数的值

java在一个void函数中,交换两个数的值

作者: 南柯一梦00 | 来源:发表于2018-06-24 22:14 被阅读12次
    import java.lang.reflect.Field;
    
    public class Main {
    
        public static void main(String[] args) {
    
            Integer a = 1;
            Integer b = 2;
            System.out.println("before swap a=" + a + ";b=" + b);
            swap(a, b);
            System.out.println("after swap a=" + a + ";b=" + b);
        }
    
        private static void swap(Integer num1, Integer num2) {
    //        System.out.println("after swap a=" + num2 + ";b=" + num1);
    //        System.exit(0);
            try {
                Field field = Integer.class.getDeclaredField("value");
                field.setAccessible(true);
                int tmp = num1;
                field.set(num1, num2);
                //IntegarCache的缓存范围[-128,127]
                field.set(num2, new Integer(tmp));
    
            } catch (NoSuchFieldException | IllegalAccessException e) {
                e.printStackTrace();
            }
    
        }
    
    
    }
    
    

    相关文章

      网友评论

          本文标题:java在一个void函数中,交换两个数的值

          本文链接:https://www.haomeiwen.com/subject/lznsyftx.html