java里边如果在main函数下定义一个简单类型int a;
那么我如何通过一个函数传入这个变量的引用?(传地址)

解决方案 »

  1.   

    在c#里边可以用ref的方法改变
    为什么java里边不可以呀?
      

  2.   

    c的地址结构是透明 的
    java的reference虽然是int但是不透明
      

  3.   

    c的地址结构是透明 的
    java的reference虽然是int但是不透明
    ????
    ------------------------------------------------
    java 里面不能通过ref i 获得变量i的地址吗?
      

  4.   

    JAVA里面现在对于int这样的简单数据类型是采用传值的
    不会传引用
    如果你想要实现传引用的效果,你可以把它包装成一个Integer对象
    既然可以包装成对象,就可以传递引用了
      

  5.   

    楼上说的不正确,在java里所有的参数传递都是值传递,即使是传递对象也是值传递,因为传递的是对象的副本。不过要实现楼主的功能要么利用返回值,要么封装成Integer传进去。但楼主之所以说想传引用肯定是想传进去后改变值,但是Integer是恒常类,一旦初始化后是不能改变的。所以这个方法无效,你只能自己写个类进行封装,然后传进去改变int。但是在Martin Fowler的《重购》这本书里是不提倡这样做的,一旦出现了你那种情况,那你最好还是想办法把代码重购吧。
      

  6.   

    首先,java里没有全局变量的说法
    其次,java里只有传值没有传引用(相对于C++,delphi等传引用)
    最后,像Integer这样的final类倒是不是不能改变其内容值,用反射可以,不过太变态,程序里不要用。
      

  7.   

    像Integer这样的final类倒是不是不能改变其内容值,用反射可以,不过太变态,程序里不要用。
    -------------
    同意楼上