一尘不染

Java是否有类似C#的ref和out关键字的东西?

c#

类似于以下内容:

参考示例:

void changeString(ref String str) {
    str = "def";
}

void main() {
    String abc = "abc";
    changeString(ref abc);
    System.out.println(abc); //prints "def"
}

出示例:

void changeString(out String str) {
    str = "def";
}

void main() {
    String abc;
    changeString(out abc);
    System.out.println(abc); //prints "def"
}

阅读 695

收藏
2020-05-19

共1个答案

一尘不染

不,Java没有像C#这样的东西refout通过引用传递的关键字。

您只能在Java中按值传递。甚至引用也按值传递。有关更多信息,请参见Jon
Skeet
的页面,有关Java中的参数传递

要执行类似的操作,ref或者out必须将参数包装在另一个对象中,然后将该对象引用作为参数传递。

2020-05-19