Fai*_* Mq 2 java out pass-by-reference
可能重复:
为什么没有办法在java中通过引用传递
任何人都可以告诉我为什么Java在处理方法参数以通过引用传递时不提供C#"out"类型功能?我的意思是为什么它不允许我们传递原始数据类型,例如boolean,通过引用传递.我也尝试过包装类java.lang.Boolean但仍无济于事.它仍然不允许我通过引用传递变量.
是否有任何特定的原因,即使在版本7中Java仍未提供此功能?
Java只有值传递.这是在设计语言时做出的决定.
只有一个参数传递模式 - 按值传递 - 这有助于保持简单.
- James Gosling等,The Java Programming Language,4th Edition
如果你想要你可以将你的布尔值作为成员放在一个可变类中(你不能使用Boolean因为它是不可变的),并传递对该类的引用.Apache Commons甚至有一个叫做MutableBoolean你可以使用的类.