首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以修改并重置java方法参数吗

我可以修改并重置java方法参数吗
EN

Stack Overflow用户
提问于 2019-08-05 23:09:42
回答 1查看 193关注 0票数 0

我可以找到许多关于java方法参数的按引用传递和按值传递的信息,但不能找到以下类型的信息,即在另一个method2中修改method1参数,同时在method1中将其设置为自身。

代码语言:javascript
复制
public class TestQDoc {
    public  QDoc method1(QDoc doc) {
        doc = (QDoc) method2(doc);
        return doc;
    }

    public QDoc method2(QDoc doc) {
        doc.x = 100;
        return doc;
    }

    public static void main(String [] args) {
        QDoc doc = new QDoc();
        doc.x=200;
        TestQDoc tq = new TestQDoc();
        doc=tq.method1(doc);
        System.out.println(doc.x);
    }

    static class QDoc {
        public Integer x;
    }
}

上面的代码按照预期打印了100。我不确定方法参数是通过引用传递的还是通过值传递的。另外,有没有可能method1无法在method2中返回修改后的文档?

EN

回答 1

Stack Overflow用户

发布于 2019-08-06 00:02:49

Java总是按值传递的。不幸的是,当我们传递对象的值时,我们传递的是对它的引用。

您正在传递一个对象并修改其内部字段,但对该对象的引用保持不变。

检查此线程:Is Java "pass-by-reference" or "pass-by-value"?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57361402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档