Java的是否有类似C#的ref和out关键字? [英] Does Java have something like C#'s ref and out keywords?

查看:1748
本文介绍了Java的是否有类似C#的ref和out关键字?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

类似以下内容:

REF例如:

 无效changeString(参考字符串str){
    海峡=高清;
}无效的主要(){
    字符串ABC =ABC;
    changeString(REF ABC);
    的System.out.println(ABC); //输出高清
}

出例如:

 无效了setString(出字符串str){
    海峡=高清;
}无效的主要(){
    字符串ABC;
    changeString(出ABC);
    的System.out.println(ABC); //输出高清
}


解决方案

没有,Java没有像C#的 REF 关键字通过引用传递。

您可以通过值在Java中唯一通过。即使引用是按值传递。请参见乔恩斯基特的页有关的参数传递的Java 了解更多详情。

要做到类似于东西REF 退出你就必须换另一个对象和关内的参数作为参数的对象引用。

Something like the following:

ref example:

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

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

out example:

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

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

解决方案

No, Java doesn't have something like C#'s ref and out keywords for passing by reference.

You can only pass by value in Java. Even references are passed by value. See Jon Skeet's page about parameter passing in Java for more details.

To do something similar to ref or out you would have to wrap your parameters inside another object and pass that object reference in as a parameter.

这篇关于Java的是否有类似C#的ref和out关键字?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆