java - Java 中 String 如何作为 Object 工作

标签 java string reference

自从遇到这个问题以来,我对 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/

相关文章:

java - 如何将字符串值转换为整数值并希望通过 webdriver 中的 'SendKeys' 提供

java - 如何将此 HTML 表转换为 JSF 表

php - 使用 PHP 将带有冒号字符串的 24 小时时钟转换为分钟?

c++ - 关于 C++ 指针和引用,需要澄清

java - 如何在整个类中使用对象引用

java - 了解普林斯顿队列教程中的 Enqueue

java - JAX-WS 使用@SchemaValidation 在 WebLogic 中验证模式

java - 如何设置字符串中的下标和上标文本(例如数学指数)

c++ - 执行 wcscpy_s 时 WCHAR 溢出

c# - 检查字符串长度并从一个字符串中生成两个字符串(C#)?