自从遇到这个问题以来,我对 Object 在 Java 中的工作方式感到非常困惑。
假设我有一个名为 checkDateValue 的函数(代码如下所示)
private boolean checkDateValue(Date d1, String msg) {
if (d1 == null) {
msg = "d1 is null!";
return false;
}
return true;
}
这是我调用此函数的地方:
String msg = null;
Date d1 = null;
if (!checkDateValue(d1, msg)) {
system.println(msg); //msg is still null.....
//what I need is the message generated in the function
}
据我所知,如果我放置一个自定义对象 (例如
myObj { private String msg;}
) 进入一个函数,我们在函数内部改变msg的值,当我们退出函数时,msg的改变被保留。不过,我认为String在java中也被认为是一个Object。为什么更改没有保留?
最佳答案
Java 没有 "out"
函数参数;它们是引用文献的副本。
即使您更改函数中的 msg
,它也不会影响调用者的变量。
关于java - Java 中 String 如何作为 Object 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16306878/