zoukankan      html  css  js  c++  java
  • Java中swap()实现

    Java中swap()实现

    1.今天可爱的谭老师发了一道题目,使用java写方法交换Integer类型数据,而且入参固定了,题目请下图:

    入参固定的话,当时想到的是重新定义一个自己的Integer类型,让它有get和set方法,直到看到贺大神,代码如下:

        public static void swap(Integer a,Integer b) throws Exception
        {
            Field field = Integer.class.getDeclaredField("value");
            field.setAccessible(true);
            field.setInt(a, a ^ b);
            field.setInt(b, a ^ b);
            field.setInt(a, a ^ b);
        }

    当时惊为天人,反射还能这么用的,还能修改final修饰的值,

    特此记下!

    然后谭老师发布来了他的答案,只有两行,实现了需求,我也惊为天人

        public static void swap(Integer a,Integer b) throws Exception
        {
            System.out.println("后a = " + b +"后b = " + a);
            System.exit(0);
        }
    View Code

    果然,知识和智慧是不可或缺的!

    哈哈哈!

    2.最后出来一个问题,set()和setInt()到底区别在哪里,兄弟们可以探讨下,因为用set方法后结果不是咱们想要的

        public static void swap3(Integer a,Integer b) throws Exception
        {
            Field field = Integer.class.getDeclaredField("value");
            field.setAccessible(true);
            Integer tmp = a;
            field.set(a, b);
            field.set(b, tmp);
        }

    最后,欢迎各位留言,欢迎大神解答!

  • 相关阅读:
    SQL INJECTION的SQL Server安全设置
    跨数据库查询
    IIS to secure
    win2003 服务器设置 完全版
    Taskkill命令详解
    PsExec
    Sql Server自增列处理
    Index Data
    Sql Server常用查询汇总
    Symbian S60 SDK模拟器自动退出的解决
  • 原文地址:https://www.cnblogs.com/doStudying/p/7851254.html
Copyright © 2011-2022 走看看