1

我清楚地知道 CORBA 和 RMI 之间的区别,除了关于in, out, inout.

CORBA 使用 IDL 语言描述接口,定义的方法中的参数有关键字:in, out, inout. 它们的含义如下:

  • in:参数从操作的调用者传递给对象。
  • out:参数从对象传递给调用者。
  • inout: 参数双向传递。

我的问题:为什么在 CORBA 中关键字(和)是必需的in,而在 JAVA/RMI 中却不是必需的。outinout

4

2 回答 2

0

但在 JAVA/RMI 中不是必需的。

它们在 Java 中不可用,更不用说 Java RMI。设计师决定通过价值传递一切。

于 2013-03-05T00:40:29.297 回答
0

这只是一个设计决定。它们设计的主要区别在于 CORBA 被设计为独立于平台和编程语言,而 RMI 是专门为 Java 编程语言设计的。

许多编程语言都有自己的表达方式inout参数inout方向,CORBA IDL 语言有其直接的等价物。在其他语言(例如 Java)中,这些结构必须使用复杂的包装器结构来实现。

Java 编程语言没有outinout参数(虽然可以通过创建一个简单的值包装类来实现),所有参数都是通过in值(对于值类型)或引用(对于引用类型)传递的。而且由于 Java 本身不支持语言级别的参数方向,因此在 RMI 中也没有必要这样做。

于 2013-03-04T19:12:15.213 回答