为什么Java不允许方法参数的C#"out"功能

Fai*_* Mq 2 java out pass-by-reference

可能重复:
为什么没有办法在java中通过引用传递

任何人都可以告诉我为什么Java在处理方法参数以通过引用传递时不提供C#"out"类型功能?我的意思是为什么它不允许我们传递原始数据类型,例如boolean,通过引用传递.我也尝试过包装类java.lang.Boolean但仍无济于事.它仍然不允许我通过引用传递变量.
是否有任何特定的原因,即使在版本7中Java仍未提供此功能?

Mar*_*ers 5

Java只有值传递.这是在设计语言时做出的决定.

只有一个参数传递模式 - 按值传递 - 这有助于保持简单.

- James Gosling等,The Java Programming Language,4th Edition

如果你想要你可以将你的布尔值作为成员放在一个可变类中(你不能使用Boolean因为它是不可变的),并传递对该类的引用.Apache Commons甚至有一个叫做MutableBoolean你可以使用的类.