网上很多
private static void method(Object a, Object b) {
a = 400;
b = 500;
System.out.println(a);
System.out.println(b);
System.exit(0);
}

解决方案 »

  1.   

    楼主要的是这效果吧,纯手敲的。public class Helol{
        static class T{
          public Integer a;
          public Integer b;
       }
       public static void main(String... args){
         T t = new T();
         t.a=4;t.b=5;
         method(t);
         system.out.println(t.a + " ; " + t.b);
       }
       public static void method(T t){
         t.a=500;
         t.b= 400;
        }
    }
      

  2.   

    main方法是自己写的吗?可以用List或者map
      

  3.   

    这个难道不是直接a=a*100么,不是在下面调用传入的a,b么
      

  4.   

    把你自己写的东西去掉,把完整原题给上来。
    还有就是java使用值传递是无法改变原有变量的值的。
      

  5.   

    这玩意真心无解啊,看了下就6L说的有道理,基本类型怎么改。一个副本无法啊,如果是引用类型倒还可以撸,毕竟引用到处窜,你写的方法在带入实参的时候就是另外的一个东西了,哪怕会被解析为Integer打包器,但是也无法影响到方法体外的a和b的值啊
      

  6.   

    public static void method(Integer a, Integer b)
    {
      a.setIntValue(400);
      b.setIntValue(300);
    }??
      

  7.   

    反正我觉得你这断章取义截一半的题目,还有各种个人添加的信息进行误导,就跟给了一份缺斤少两的文档然后让人找bug,最关键的是,你还觉得你文档写的非常完美,一般人看一眼就知道怎么找bug
      

  8.   

    不知道我没看懂还是什么意思,我感觉很简单啊,传入的是Integer类型不就行了,java8支持自动拆装箱的
      

  9.   

    看来是我不懂了,我去查了下,原来Integer也不行
      

  10.   

    public class Helo1 {
    public static void main(String[] args) {
    int a, b;
    a = 4;
    b = 5;
    method(a, b);
    System.out.println("a=" + a + "b=" + b);
    } public static void method(Object a, Object b) {
    // 通过这个方法把a变成400,把b变成500
    a = 400;
    b = 500;
    // 输出还是a=4 b=5

    // 函数体内部玩法修改函数以外的变量值
    }
    }
      

  11.   

    我觉得你题目中的类型是不是写错了,a,b估计是Integer的,Integer是可以通过反射做到的public class Main {
        public static void main(String[] args) throws Exception {
          Integer a,b;
          a = 4;
          b = 5;
          change(a,b);
          System.out.println("a=" + a + ",b=" + b);
        }    private static void change(Integer a, Integer b) throws Exception {
            Class<?> clazz = a.getClass();
            Field field = clazz.getDeclaredField("value");
            field.setAccessible(true);
            field.set(a,400);
            //b 类似
            //.....
        }
    }
      

  12.   

    基本类型的变体引用类型和String都不能直接当纯引用类型来用,比如Integer,Double等都是int与double的引用类型,但是你不能像普通引用类型那样直接对他的值做改变,因为在他们里面封装的原始int与double都用了final进行声明。所以你就算重新赋值了原始的int与double都不会改变。
      

  13.   


    public static void method(Object a, Object b) {
    // 通过这个方法把a变成400,把b变成500
    a = 400;
    b = 500;
    // 输出还是a=4 b=5
    在这里输出a,b
                   然后退出执行System.exit(0);

    // 函数体内部玩法修改函数以外的变量值
    }
      

  14.   


    看网上的答案,这题目更像是智力题private static void method(Object a, Object b) {
        a = 400;
        b = 500;
        System.out.println(a);
        System.out.println(b);
        System.exit(0);
    }