Integer传址&传值问题!

birdroom75 2002-10-10 05:01:27
class T1
{
public void f3(Integer ii)
{
Integer aa = new Integer(2222222);
ii = aa;
}
}
public class T2
{
public static void main(String[] args)
{
Integer s=new Integer(1);
T1 tt = new T1();
tt.f3(s);
System.out.println(s);
}
}
想改变s的值,试了String和Integer都不行?可有别的类型可行?
...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ch_jp 2002-10-10
  • 打赏
  • 举报
回复
没必要采用Integer, 做参数时用int.
如果有必要,则 Integer integer = new Integer(s) ;
AngusZhang 2002-10-10
  • 打赏
  • 举报
回复
Integer传值
cxj_lkr 2002-10-10
  • 打赏
  • 举报
回复
Integer是immutable的,值一旦设定,就不能改了,除非指向一个新的对象,把s作为一个对象的一个属性(可以自己写一个),就可以在函数里改变值了。
DavidBone 2002-10-10
  • 打赏
  • 举报
回复
这里有个string 和 stringBuffer 的例子 贴出来大加一起讨论
public class Test{
public static void stringReplace(String text){
text=text.replace('j','l');
}
public static void bufferReplace(StringBuffer text){
text=text.append("c");
}
public static void main(String args[]){
String textString=new String("java");
StringBuffer textBuffer=new StringBuffer("java");
StringReplace(textString);
bufferReplace(textBuffer);
System.out.println(textString+textBuffer);
}
}
what is the output?
upc_chenli 2002-10-10
  • 打赏
  • 举报
回复
String 改为 StringBuffer
birdroom75 2002-10-10
  • 打赏
  • 举报
回复
返回类型不要int型,因为还得用来返回ResultSet
qo 2002-10-10
  • 打赏
  • 举报
回复
sorry:

class T1
{
int ii

public int f3(int ii)
{
this.ii=ii;
return this.ii;
}
}
qo 2002-10-10
  • 打赏
  • 举报
回复
class T1
{
int ii

public void f3(Integer ii)
{
this.ii=ii;
}
}

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧