【发布时间】:2012-04-26 05:46:51
【问题描述】:
谁能告诉我为什么Java在处理方法参数以通过引用传递时不提供C#“out”类型功能?
我的意思是为什么它不允许我们传递像布尔值这样的原始数据类型,例如,通过引用传递。我也尝试过包装类 java.lang.Boolean 但仍然无济于事。它仍然不允许我通过引用传递变量。
Java 甚至在版本 7 中仍然没有为我们提供这个有什么具体原因吗?
【问题讨论】:
-
当你设计一门语言时,你只需要在某个地方做一个剪辑。一种语言的不必要功能越多,它的用处就越少……
-
.Net (C#) 占据了后发优势,它们展示了应用程序开发人员在 Java 中缺少的内容,并结合了“通过原始类型的引用”。现在 Java 最初的设计不允许,现在 Oracle 提供它可能很复杂,JVM/JRE 如何管理堆栈和堆,现在添加此功能还有许多其他技术限制。
-
@Pritesh:Java 并不是第一种被发明的语言,在 Java 之前我们已经有 吨 种语言,所以“后发优势”并不是一个强有力的论据.
-
嘿@Arafangion 我知道没有。 Java 之前的语言 :)Java 和 .Net 是 C++ 的衍生品,C++(带有 OS 攻丝功能)回答了应用软件开发中的大多数问题,除了生产力。 Java 是第一个比 C++ 具有高生产力的产品,因为它们从 C++ 中删除了不易使用的功能。 .Net 有一些时间,所以他们注意到程序员在 Java 中缺少哪些 c++ 类功能,并将它们合并到 .Net 中,例如运算符重载。
-
@Pritesh:这非常值得商榷。好奇你没有提到 BCL 的影响。
标签: java pass-by-reference out