这里为什么不给我打包了? public static void f(Integer x){ x=x*3;}试验结果x并没有被乘3,请问是怎么回事?不是应该自动打包拆包吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class TestInbox { public static void f(Integer x) { x = x * 3; System.out.println(x); } public static void main(String[] args) { Integer x = 3; f(x); }}因为你的f没有返回值。 ZW_Ren(任再旺)你这么做这个例子就没有意义了。我想问为什么不给我拆包,然后乘3,然后再打包? Integer应该也是作为值传递的你说的是引用传递吧...这个不叫打包..你可以传一个LIST或者HASHMAP之类的"类"进去在方法里给列表添加数据,外部变量也会同时更改 int是值传递,Integer是引用传递 你去翻翻书我记得几个基本变量的类都是FINAL的那几个传递的时候应该是CLONE的 我觉得你的这个问题不是拆包和打包的问题。拆包和打包public void f(Integer i){ return i*i;}这个可以叫拆包。以因为你是一格对象Integer对象作参数,但是运算的时候是以int来运算的。所以叫拆包。你看一下下面的这篇文章吧,可能对你有用。 http://www.blogjava.net/AllanZ/archive/2006/07/29/60726.html 对于你的这个问题,我觉得应该是,值传递还是址传递的问题。在java里面,基本类型,是值传递的。对象类型,是址传递。一般是这样。详细的内容还要看 java编程思想。 我的老是提示一下错误,帮忙看看是为什么? 一个面试题,没看明白,大家看下 从java程序中启动TOMCAT java新手 急求PropertyListener用法 jsp 异常 ???????? :- D 如何判断2004-02-34的正确性(在转换成日期时) 一道题目 得分的简单问题,文件扩展名... 多线程时,BufferedInputStream.read(buf,0,length) 阻塞怎么办? 为什么执行不了HelloWorld.java程序? 关于一道ACM题,总是超时,请帮帮忙!!
x = x * 3;
System.out.println(x);
}
public static void main(String[] args) {
Integer x = 3;
f(x);
}
}因为你的f没有返回值。
你这么做这个例子就没有意义了。我想问为什么不给我拆包,然后乘3,然后再打包?
你说的是引用传递吧...这个不叫打包..
你可以传一个LIST或者HASHMAP之类的"类"进去
在方法里给列表添加数据,外部变量也会同时更改
我记得几个基本变量的类都是FINAL的
那几个传递的时候应该是CLONE的
拆包和打包
public void f(Integer i){
return i*i;
}
这个可以叫拆包。
以因为你是一格对象Integer对象作参数,但是运算的时候是以int来运算的。
所以叫拆包。
你看一下下面的这篇文章吧,可能对你有用。
在java里面,基本类型,是值传递的。对象类型,是址传递。
一般是这样。详细的内容还要看
java编程思想。