【发布时间】:2011-01-14 12:35:52
【问题描述】:
我需要在从方法返回内容列表时返回/更新布尔值。 Java 不能返回元组,我不想为此创建一个单独的类,所以我想我会将 bool 作为输出参数传递。这就是我们的 C++ 客户端所做的,通过引用传递 bool。这适用于普通类,因为 java 对对象具有传递引用(请参阅Is Java "pass-by-reference" or "pass-by-value"? 对此进行很好的讨论)。但是像 Boolean 这样的“包装器”类将它们的原始值存储为不可变的,因此不能以这种方式更新。
使用布尔数组(只有一个条目)看起来很笨拙,但可能是最简单的方法。或者,可以返回布尔值并将创建的列表作为输出参数传回,而不是作为返回值 [但是 java 客户端偏离了 C++,最好它们保持基本相同的方法——仅供参考,C# 中也需要这个。 ]
【问题讨论】:
-
其实Java可以返回元组。您可以将返回值放入 java.util.List 或 java.util.Map 并返回。
-
仅供参考,请参阅下面关于 java 元组和返回 List 的混乱的答案中的 cmets。
标签: java parameters pass-by-reference